我的代碼是:如何解釋這個正則表達式/ [ W _]/G
var result2 = result.replace(/[\W_]/g,"").replace(",","").replace(".","");
代碼工作我得到了我需要做的,但我不明白如何正則表達式/[\W_]/g
作品,我找不到任何我理解的文檔。
我的代碼是:如何解釋這個正則表達式/ [ W _]/G
var result2 = result.replace(/[\W_]/g,"").replace(",","").replace(".","");
代碼工作我得到了我需要做的,但我不明白如何正則表達式/[\W_]/g
作品,我找不到任何我理解的文檔。
/
... /g
這是一個全球性的正則表達式。所以它將在字符串中的多個匹配上運行。
[
... ]
這創建了character set。基本上它會匹配列出的一組字符中的任何單個字符。
\W_
這匹配inverse of "word characters"和下劃線。任何非單詞字符。
然後你有幾個逗號和句號的替代品。老實說,如果這是完整的代碼,/[\W_,.]/g
,省略其他兩個替換,也可以。
[
和]
是字符集的開始和結尾。
\W
表示「非單詞」,而不是\w
它將匹配一個單詞。
_
是「_」字符。
/
標記正則表達式的開始和結束。
g
這意味着這是一個全球搜索。
從MDN
\ W匹配任何非單詞字符。相當於[^ A-Za-z0-9_]。
例如,/ \ W /或/ [^ A-Za-z0-9 _] /與「50%」中的'%'匹配。
下劃線(_)字面下劃線
托架限定一個字符類的含義是,如果任何非字或一個下劃線字符是本
replace
查找所有正則表達式的出現次數,並用另一個字符串替換它。
因此,您的表達式會替換任何非單詞字符或_或。爲空字符串(即刪除)
它可以簡化爲:
result.replace(/[\W_,\,]/g,"")
好吧,讓我們來分析一下。 replace(/[\W_]/g, "")
表示用空字符串替換每個非單詞字符和下劃線。所以在字符串$ 1.00中,它會以100($和。是非單詞字符)出現。
然後.replace(",","")
刪除逗號。
和.replace(".","")
刪除句點。
'/ [\ W _]/g'將匹配非單詞字符和下劃線。 '/ g'全局匹配。 [看這個作弊表](https://www.debuggex.com/cheatsheet/regex/javascript)。 – jperezov
我強烈建議您轉到http://regexr.com/。在那裏,點擊「參考」。這是瞭解正則表達式的好地方。 –