2014-07-02 57 views
0

我很困惑在JavaScript正則表達式這行代碼:正則表達式範圍如何使用簡寫語法?

.replace(/[^\w- ]+/g,'')

我明白,這是試圖執行一個替換不在字字符類的字符。但它也是一個範圍,因此它必須包含其他範圍。我會假設也許還有空間角色,但是在控制檯中運行它似乎並沒有取代它。

[^ \ W]就意味着沒有以下字符:A-ZA-Z0-9_

如何爲一系列可能的嗎? \ w-從什麼開始?

回答

3

\w-不是字符範圍,因爲\w不是字符。 -在這裏沒有特別的含義,所以[^\w- ]匹配任何不是單詞字符,字面短劃線或空格的東西。

2

由於\w不是字符,語法不是有效範圍。字符類中位置的連字符不能形成範圍,而會被解釋爲文字或錯誤。正則表達式與任何字符匹配,但不包括:單詞字符(a-z,A-Z,0-9,_),連字符(-)和空格字符(' ')。