2016-05-30 78 views
3

我試圖創建一個像這樣的構造函數語法正則表達式new RegExp('\bword\b', 'g'),但它不像預期的那樣工作。相反,它似乎創建了一個正則表達式,看起來像這個/\bwor\b/g與丟失的最後一封信。爲什麼這兩個正則表達式的行爲不一樣?

我必須使用構造函數語法來創建正則表達式,因爲我是從json文件動態創建的,並且不能將正則表達式放入json中。所以我的問題是:

a。爲什麼這些行爲有所不同?和b。我能做些什麼來糾正這種情況?

注意:我試圖做的是創建一個只匹配整個單詞的正則表達式,而不是另一個單詞中存在的單詞。

+1

RegExp上需要兩個反斜槓 – YOU

回答

14

對於字符串\b表示退格鍵

對於正則表達式\b表示字邊界

要確保使用正則表達式版本,請在字符串中的每個反斜槓之前添加一個額外的反斜槓\以轉義轉義字符。

+0

謝謝!我沒有意識到他們有不同的語法 – watzon

+2

@mascaliente不把它們當作「不同的語法」。這只是字符串文字的一個要求,斜槓應該被轉義。 – zerkms

+0

@zerkms謝謝:)我有很多東西要學習正則表達式 – watzon

相關問題