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

问题描述 投票:0回答:3

如果它们背对背,则字符匹配。如果定义的非法字符是长字符串的一部分,则不会返回正确的已清理文本。我想要找到并用空格替换的非法字符是'-_ + = [] {} \ |'

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

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

对于我运行的大多数示例代码,我都没有得到任何返回。我在Codepen和jsfiddle上运行。

javascript regex
3个回答
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);

0
投票

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

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

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

注意:即使在正则表达式字符类中,也应该转义方括号和反斜杠(尽管在每种正则表达式中并不总是如此)。


0
投票

你需要通过一个字符类([])来选择它们;

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

var string = "This -str_+in=g[ ]is {d}i|rty.";
console.log(dirtyString(string));
© www.soinside.com 2019 - 2024. All rights reserved.