我想使用JavaScript从字符串中删除除空格之外的所有特殊字符。

例如, 美国广播公司的测试#年代 应输出为 abc测试。


当前回答

你可以指定你想要删除的字符:

string = string.replace(/[&\/\\#,+()$~%.'":*?<>{}]/g, '');

或者,要更改除数字和字母以外的所有字符,请尝试:

string = string.replace(/[^a-zA-Z0-9]/g, '');

其他回答

你想从字符串中删除谁的特殊字符,准备一个列表,然后使用javascript替换函数删除所有特殊字符。

var str = 'abc'de#;:sfjkewr47239847duifyh';
alert(str.replace("'","").replace("#","").replace(";","").replace(":",""));

或者你可以为整个字符串运行循环,并将单个单个字符与ASCII码进行比较,并重新生成一个新字符串。

你可以指定你想要删除的字符:

string = string.replace(/[&\/\\#,+()$~%.'":*?<>{}]/g, '');

或者,要更改除数字和字母以外的所有字符,请尝试:

string = string.replace(/[^a-zA-Z0-9]/g, '');

试试这个:

const strippedString = htmlString.replace(/(<([^>]+)>)/gi, "");
console.log(strippedString);

你应该使用字符串替换函数,一个单一的正则表达式。 假设你所说的特殊字符是指任何不是字母的字符,下面是一个解决方案:

Const STR = "abc's test#s"; console.log (str。replace(/[^a-zA-Z]/g, "");

点(.)可能不被认为是特殊的。我在Mozfet’s & Seagull的答案中添加了一个OR条件:

function isNumber (text) {
      reg = new RegExp('[0-9]+$');
      if(text) {
        return reg.test(text);
      }
      return false;
    }

function removeSpecial (text) {
  if(text) {
    var lower = text.toLowerCase();
    var upper = text.toUpperCase();
    var result = "";
    for(var i=0; i<lower.length; ++i) {
      if(isNumber(text[i]) || (lower[i] != upper[i]) || (lower[i].trim() === '') || (lower[i].trim() === '.')) {
        result += text[i];
      }
    }
    return result;
  }
  return '';
}