2015-04-04 43 views
-1

當我使用像regexpal.com這樣的工具時,讓我用我習慣的正則表達式。因此,例如,我想檢查一個文本,如果匹配的單詞至少有3個字母並以空格結束,則它將匹配'now ''noww '等。爲什麼我必須在javascript正則表達式上添加雙反斜槓?

在regexpal.com這個正則表達式工程\w{3,}\s這符合上述兩個字。

但在JavaScript上,我必須在w和s之前添加雙反斜槓。像這樣:

var regexp = new RegExp('\\w{3,}\\s','i'); 

否則它不起作用。我四處尋找答案並搜索了雙反斜槓javascript正則表達式,但我得到的是完全不同的話題,關於如何避免反斜槓等。有人對此有解釋嗎?

回答

4

你可以在沒有雙反斜槓的情況下編寫正則表達式,但是你需要把正則表達式作爲分隔符轉換成正斜槓。

/^\w{3,}\s$/.test('foo ') 

^行邊界的開頭匹配),$相匹配的線結束)幫助做一個確切的字符串匹配。您不需要修改器i,因爲\w匹配大寫和小寫字母。

+0

謝謝,這也是非常豐富的。 – Aiden 2015-04-04 03:36:58

1

爲什麼?因爲在字符串中,「\」引用下面的字符,所以「\ w」被視爲「w」。它基本上是說「按字面處理下一個字符,不要解釋它」。

爲了避免這種情況,必須引用「\」,所以正則表達式解析器將「\\ w」視爲「\ w」。

+0

謝謝,但我不明白爲什麼我的問題得到-4。我做錯什麼了嗎? – Aiden 2015-04-04 03:31:20

+0

不知道,選民誰沒有勇氣解釋他們的投票沒有任何信任。幸運的是,它需要大量的反對票來取消投票。 ;-) – RobG 2015-04-04 05:03:05

相關問題