我的代码是:
var result2 = result.replace(/[\W_]/g,"").replace(",","").replace(".","");
代码工作我得到了我需要做的,但我不明白正则表达式/[\W_]/g
如何工作,我找不到任何我理解的文档。
答案 0 :(得分:4)
/
... /g
这是一个全球正则表达式。因此它将在字符串中的多个匹配项上运行
[
... ]
这会创建一个character set。基本上它会匹配列出的字符集中的任何单个字符
\W_
这与inverse of "word characters"和下划线匹配。任何非单词字符。
然后你可以用逗号和句号替换一些。老实说,如果这是完整的代码/[\W_,.]/g
,省略另外两个替换,也可以。
答案 1 :(得分:2)
[
和]
是字符集的开头和结尾
\W
表示"非单词",而不是与单词匹配的\w
。
_
是" _"字符。
/
标记正则表达式的开头和结尾
g
表示它是全球搜索。
答案 2 :(得分:1)
来自MDN
\ W匹配任何非单词字符。相当于[^ A-Za-z0-9 _]。
例如,/ \ W /或/ [^ A-Za-z0-9 _] /匹配'%'在" 50%。"
下划线(_)匹配文字下划线
括号定义了一个字符类,这意味着如果存在任何非单词或下划线字符,正则表达式将匹配
答案 3 :(得分:1)
replace
查找正则表达式的所有出现,并将其替换为另一个字符串。
所以你的表达式替换任何非单词字符,或_,或。到空字符串(即删除它)
可以简化为:
result.replace(/[\W_,\,]/g,"")
答案 4 :(得分:0)
好的,让我们分解吧。 replace(/[\W_]/g, "")
表示用空字符串替换每个非单词字符和下划线。因此,在字符串$ 1.00中,它将显示为100($和。是非单词字符)。
然后.replace(",","")
删除逗号。
.replace(".","")
删除了句号。