我需要從字符串中刪除某些特殊字符。 對於同正在使用使用正則表達式刪除點刪除*太
replace(/[()-/.]/gi, '');
這是工作正常,但我意識到,它還會刪除「*」。任何想法,爲什麼? 如果我刪除'。'從表達它的工作正常,所以我想這是造成一些問題,這是不確定的
我需要從字符串中刪除某些特殊字符。 對於同正在使用使用正則表達式刪除點刪除*太
replace(/[()-/.]/gi, '');
這是工作正常,但我意識到,它還會刪除「*」。任何想法,爲什麼? 如果我刪除'。'從表達它的工作正常,所以我想這是造成一些問題,這是不確定的
問題是出現在中間的未轉義的連字符。使這樣的:當一個未轉義連字符顯示在它作爲一個範圍內的字符類的中間
replace(/[()\/.-]/gi, '');
)
是ASCII 41/
爲ASCII 47*
ascii 42因此你的正則表達式否定*
,因爲-
作用於範圍中的所有字符41-47
連字符需要轉義,因爲它在字符類中的位置。您也可以刪除i
(不區分大小寫)標誌,因爲您沒有包含正確的字符,所以不需要。
/[()\-\/.]/g
注:在字符類的連字符有特殊的意義。您可以將其作爲課程的第一個或最後一個字符。在一些正則表達式實現中,你也可以直接放在範圍之後。如果將連字符放在其他任何位置,則需要在其前面加上反斜槓,以便將其添加到角色類中。
謝謝猜猜會有更多的概念深入挖掘 – noob 2014-10-17 15:32:46