Javascript 正则表达式-组合模式
在javascript中,我想删除所有非字母数字字符。这是我的密码:Javascript 正则表达式-组合模式,javascript,regex,Javascript,Regex,在javascript中,我想删除所有非字母数字字符。这是我的密码: function (inpt) { return inpt.replace(/[^\w]/gi, "").replace(/_/g, ""); } 这段代码工作100%正确。删除所有非字母数字字符 \w仍然允许下划线,这就是我将两个replace语句链接在一起的原因 然后我尝试像这样组合正则表达式,现在下划线不再被过滤 function (inpt) { return inpt.rep
function (inpt) {
return inpt.replace(/[^\w]/gi, "").replace(/_/g, "");
}
这段代码工作100%正确。删除所有非字母数字字符
\w
仍然允许下划线,这就是我将两个replace
语句链接在一起的原因
然后我尝试像这样组合正则表达式,现在下划线不再被过滤
function (inpt) {
return inpt.replace(/[^\w_]/gi, ""); // note: added _
}
我做错了什么?您的
[^\w\uu]
模式表示一个匹配任何字符但不匹配单词(字母、数字或)和字符的字符
[^\w]
模式等于\w
。因此,您可以使用
/[\W_]/g
看
这里,[\W\u]
是一个正数,与非单词字符或
匹配
JS演示:
var str=“some%\u 1string*”;
console.log(str.replace(/[\W_]+/g',)代码>改用[\W\u]
。不需要i标志。它表示“not\w”或“not\uu”@epascarello-谢谢,我希望我能多次投票支持你的评论。(:谢谢。我被“^”弄糊涂了……我想这可能是字符串的开头。如果你将epascarello的评论合并到你的答案中,我可以接受你的答案作为最终答案。@Joe Nie ma za co:)