这些人物如果背对背匹配。如果定义的非法字符是长字符串的一部分,则不会返回正确的已清理文本。我要查找并替换为空白的非法字符是'-_ + = [] {} \ |'
我已经阅读了各种正则表达式博客,Mozilla开发人员网络站点以及stackoverflow中的一些答案。我用\表示+,[和|。如果有更简单的方法,请分享。
function dirtyString(str) {
cleanString = str.replace(/-_\+=\[]{}\|/g, "");
return cleanString;
}
对于我运行的大多数示例代码,我什么也得不到。我已经在Codepen和jsfiddle上运行了。
答案 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));