从字符串中删除定义的非法字符

时间:2019-03-28 01:25:29

标签: javascript regex

这些人物如果背对背匹配。如果定义的非法字符是长字符串的一部分,则不会返回正确的已清理文本。我要查找并替换为空白的非法字符是'-_ + = [] {} \ |'

我已经阅读了各种正则表达式博客,Mozilla开发人员网络站点以及stackoverflow中的一些答案。我用\表示+,[和|。如果有更简单的方法,请分享。

function dirtyString(str) {
    cleanString = str.replace(/-_\+=\[]{}\|/g, "");
    return cleanString;
}

对于我运行的大多数示例代码,我什么也得不到。我已经在Codepen和jsfiddle上运行了。

3 个答案:

答案 0 :(得分:0)

尝试将您的字符放入正则表达式字符类中:

function dirtyString(str) {
    cleanString = str.replace(/[\-_+=\[\]{}\\|]/g, "");
    return cleanString;
}

var str = "HELLO-_+=[]{}|WORLD";
console.log(str);
console.log(dirtyString(str));

注意:即使在正则表达式字符类中,也应转义方括号和反斜杠(尽管并非每种正则表达式都适用)。

答案 1 :(得分:0)

将字符放入character class(放在方括号中)

一个字符类将对其中的每个字符进行数学运算。例如,正则表达式/[abc]/g将匹配所有的a,b和c(字符类为[abc]。此外,字符类[a-zA-Z0-9](您可能会看到很多)匹配所有字母数字字符

在括号(/)之前使用[]。查看更多here

var string = "s[s ass'-sas_+as[aasd]{ss}\asddfa|a]fasdf";

string = string.replace(/[ '-_+=\[\]{}\|]/g, '');
console.log(string);

答案 2 :(得分:0)

您需要通过字符类([])选择它们;

function dirtyString(str) {
  cleanString = str.replace(/[\-_+=\[\]{}\\|]/g, "");
  return cleanString;
}

var string = "This -str_+in=g[ ]is {d}i|rty.";
console.log(dirtyString(string));