2017-02-11 73 views
1
刪除逗號

我有下面的代碼的JavaScript線,消除characters-包括來自於字符串commas-:從正則表達式

return str.replace(/(?!\/)(?!\)(?!\-)(\W)/ig, ''); 

如何我只能拿出一段代碼,刪除逗號?

+0

不是downvoter,但請提供一些更多的信息和預期的輸入和輸出字符串。 – Jan

回答

1

/(?!\/)(?!\)(?!\-)(\W)/ig這不是一個「字」的字符(即[a-zA-Z0-9_])和3個向前看符號的任何字符匹配正則表達式也限制字符/-。逗號被刪除,因爲它是\W的一部分。

如果你想保持它,再添前瞻:(?!,),那麼你的正則表達式變成:

return str.replace(/(?!\/)(?!)(?!-)(?!,)(\W)/g, ''); 

我已經去除了unnecessay逃逸和不區分大小寫的標誌。

這應該寫成:

return str.replace(/[^\w\/, -]/g, ''); 
+0

謝謝你的回答,你能解釋爲什麼我不能簡單地從正則表達式中刪除這個部分:'\ W'?你能解釋一下你的意思嗎?_我已經刪除了不必要的轉義和不區分大小寫的flag._?謝謝! – user3378165

+0

@ user3378165:在正則表達式中,您必須轉義某些特殊字符。空間和衝刺不是特別的,所以沒有必要逃避它們。你不能只刪除'\ W',因爲它只剩下3個負長度匹配的負面預測,你不能一無所有! – Toto

+0

@ user3378165:對於一些正則表達式的基礎知識,請參閱http://stackoverflow.com/questions/22937618/reference-what-does-this-regex-mean和http://www.regular-expressions.info/ – Toto