This question already has answers here:
Remove not alphanumeric characters from string. Having trouble with the [\] character
                                
                                    (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