This question already has answers here:
Remove not alphanumeric characters from string. Having trouble with the [\] character
(6个答案)
2年前关闭。
我有一个包含多个不同字符的字符串数组。我正在遍历数组并使用.replace(RegExp,Replacement)方法,但是我似乎无法使其正常工作。我正在使用的表达式是“ / [^ \ w \ d]”。我正在尝试删除所有非字母或数字(包括空格)的内容,并将其替换为“ _”(以使其适合文件名)。我已经测试了上面的正则表达式,它应该是正确的。但是我得到了奇怪和不需要的结果。以下代码将重现我的问题。
输出将如下所示
它不会找到反斜杠或“®”符号。当它确实找到了东西时,它还会删除以下字符。我在这里做错了什么?
作品。您希望g替换所有出现的内容。您的新Regexp语法错误。它不应包含斜线。
(6个答案)
2年前关闭。
我有一个包含多个不同字符的字符串数组。我正在遍历数组并使用.replace(RegExp,Replacement)方法,但是我似乎无法使其正常工作。我正在使用的表达式是“ / [^ \ w \ d]”。我正在尝试删除所有非字母或数字(包括空格)的内容,并将其替换为“ _”(以使其适合文件名)。我已经测试了上面的正则表达式,它应该是正确的。但是我得到了奇怪和不需要的结果。以下代码将重现我的问题。
var StringArray = ["ABCdef123®","ABCdef/123®","ABCde f123®","ABCde/f123®","AB Cde\\f123®"];
const myRegex = new RegExp("/[^\w\d]");
var NewString;
var counter = 0;
StringArray.forEach(function(item){
NewString = item.replace(myRegex,"_");
console.log("Old String: " + item);
console.log("New String: "+ NewString);
counter++;
})
输出将如下所示
Old String: ABCdef123®
New String: ABCdef123®
Old String: ABCdef/123®
New String: ABCdef_23®
Old String: ABCde f123®
New String: ABCde f123®
Old String: AB Cde/f123®
New String: AB Cde_123®
Old String: AB Cde\f123®
New String: AB Cde\f123®
它不会找到反斜杠或“®”符号。当它确实找到了东西时,它还会删除以下字符。我在这里做错了什么?
最佳答案
const myRegex = /\W/g;
作品。您希望g替换所有出现的内容。您的新Regexp语法错误。它不应包含斜线。
关于javascript - 为什么我的RegexExp无法正常工作? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51865967/
10-12 15:51