2010-11-02 59 views
1

對於不是-或任何單詞字符的任何內容,javascript RegExp會是什麼?我試過[^-\w],但我有一個控制檯錯誤。有任何想法嗎?對於任何不是 - 或任何單詞字符的RegExp

+0

什麼錯誤?當你去見你的醫生時,你告訴他你有病嗎? – 2010-11-02 17:02:45

+0

嘗試escpaing - ?比如\ - – rapadura 2010-11-02 17:03:47

+0

如果我在.replace()中使用它,它會替換一切,但字符串中的數字和破折號? – chromedude 2010-11-02 17:13:35

回答

4

您是否將其放入正斜槓?

var rex = /[^\w-]/; 

適用於所有測試過的瀏覽器。 (注:我把 - 在最後的良好實踐的問題,所以它永遠不會與一系列令牌混淆。)

+1

由於某種原因,我忘記了。它現在不顯示任何錯誤,它只是不做我想做的事情。必須是代碼的另一部分中的錯誤。 – chromedude 2010-11-02 17:10:35

+0

你在什麼情況下使用了什麼功能? 'String.replace()','String.match','RegExp.test',... on string ...? – Lekensteyn 2010-11-02 17:13:53

+0

String.replace() – chromedude 2010-11-02 17:14:24

1

-是字符類內的特殊字符,表示字符範圍。它應該被解釋爲「 - 」。因此,對於不匹配的字詞和-,請使用:

/[^\w\-]/ 
+0

是的,你可以。嘗試一下。 – 2010-11-02 17:06:32

+0

除了OP不想匹配結果。 – Robusto 2010-11-02 17:07:26

+0

'\ w'在角色類中是絕對好的。它通常用這種方式來縮短正則表達式。例如'[a-zA-Z_0-9]'可以改寫爲'[\ w \ d]'。 – 2010-11-02 17:07:46

0

嘗試在你最喜歡的JS控制檯下面

/[-\w]/.test('-') 
/[-\w]/.test('word') 
/[-\w]/.test('-w') 
0

我相信你有正確的正則表達式 - 請記住用斜槓括起來:/ [^ - \ w] /:

"-".match(/[^-\w]/) 
null 
"a".match(/[^-\w]/) 
null 
"0".match(/[^-\w]/) 
null 
" ".match(/[^-\w]/) 
[" "] 
相關問題