2017-07-15 28 views
-4
var newstr= str.replace(/[\W_]/g, ''); //replace all non-alfanumeric blank 

這是我從Javascript中的字符串中刪除非字母數字字符時所嘗試的代碼。你能解釋我這個特定的Javascript行嗎?

請解釋一下</[\W_]/g></\w+/g></\w/g>之間的區別。

+1

爲什麼你不試圖自己找到解釋? – zerkms

+0

檢查[正則表達式在線教程](https://regexone.com/) –

+0

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions –

回答

1

如果我們有/[\ W _] /克任何在STR對象此特殊符號的更換空的( 「」)值。

1

\w:1個字的字符。它相當於[A-Za-z0-9_]

\w+:1個或更多的字詞。

\W:1非單詞字符。它相當於​​或[^A-Za-z0-9_]
所以\W是任何不是字母,不是數字,也不是下劃線。

[\W_]:帶有非單詞字符和下劃線的字符類。 這相當於[^A-Za-z0-9]

注意與葉形更換不了了之,代碼str.replace(/\W/g,'')可以得到同樣的結果str.replace(/\W+/g,'')。前者將一次替換1個字符,而後者將替換當前1個或更多字符的組。關於正則表達式的語法

更多信息可以在this old post

找到或者你可以直接複製粘貼&在網上正則表達式測試你的正則表達式。
例如regexrregex101
然後檢查解釋,或將鼠標指針懸停在模式上,以獲取有關模式每個部分的提示。

相關問題