从字符串末尾删除所有特殊字符

时间:2020-04-17 10:10:26

标签: javascript reactjs

我目前正在开发一个应用程序,该应用程序在字符串末尾需要多个特殊字符。

一些例子是:

  1. 5 * +-
  2. 345-+
  3. ABC +-++

我要替换所有以下内容:

  1. 5 * +-至5A
  2. 345- +至345A
  3. ABC +-++转换为ABCA

有人可以帮我吗?

谢谢!

5 个答案:

答案 0 :(得分:1)

使用String.prototype.replace()方法。

var str = 'Your string';
var regex = 'Your regex';
str.replace(regex, 'replaced by this string');

答案 1 :(得分:1)

Java版本的代码:

    String myName ="5 ABCD898* + -";
        char[] line = myName.toCharArray();
        for(int i = line.length-1; i>=0; i--)
    {
        if (!((line[i] >= 'a' && line[i]<='z') || (line[i] >= 'A' && line[i]<='Z')||(line[i] >= '0' && line[i]<='9')))
        {
            line[i] = ' ';
        }else{
break;}
    }
    myName=String.valueOf(line).trim()+"A";
System.out.println(myName);

其他版本的代码

string line="5 * + -";

for(int i = line.size()-1; i>=0; i--)
    {
        if (!((line[i] >= 'a' && line[i]<='z') || (line[i] >= 'A' && line[i]<='Z')||(line[i] >= '0' && line[i]<='9')))
        {
            line[i] = '\0';
        }else{
break;}
    }
line+="A";

答案 2 :(得分:1)

您可以将String.prototype.replace()与回调一起使用,这将有助于您修改字符串

const inputs = ['5*+-', '345-+', 'ABC+-++'];

const results = inputs.map(s => {
  const specialChr =  /[^A-Za-z0-9 ].*/g;
  const output = s.replace(specialChr, function (matched, index, original) {
    return matched + original.slice(0, index) + 'A';
  });
  return output;
});
console.log(results);

答案 3 :(得分:1)

最适合您,split上的first special char并获得first

const clean = (str) => str.split(/\W/)[0]+"A"

const clean = (str) => str.split(/\W/)[0]+"A"

const data  = `5*+- to 5A
345-+ to 345A
ABC+-++ to ABCA`.split("\n")

data.forEach(line => console.log(clean(line)))

答案 4 :(得分:0)

取决于“特殊字符”的含义。我建议使用RegEx方法。首先查看W3Schools

相关问题