2010-12-11 86 views
0

我有一個正則表達式,它似乎在Safari和Chrome中工作,在FireFox中給出了以下錯誤。d標誌在JavaScript RegEx中的含義是什麼?

Error: invalid regular expression flag d 
Source File: http://java.net/projects/mq 
Line: 194, Column: 34 
Source Code: 
    var vbkpatt1=/projects\/[^/]+/di; 

我曾與此正則表達式幾個星期前戰鬥,並把它放在一邊,所以我沒有一個鏈接,導致我使用「d」標誌的頁面。一個指向包含d標誌的ref的指針將是解決我的問題的堅實開始。

+0

它對Safari和Chrome有什麼影響? – BoltClock 2010-12-11 04:42:12

+3

Webkit將愉快地接收'/ string/zxcvbgi',忽略無效的'zxcvb',並仍然應用有效的'gi'標誌。不是那麼火狐。 – 2010-12-11 04:51:07

+0

@Ken Redler - 請發表一個答案,我會接受它。 – vkraemer 2010-12-11 07:39:30

回答

2

WebKit瀏覽器在這種情況下更寬容,並會接受這樣的事情:

/theregex/zxcvbgi 

,而不是拋出時的錯誤,他們把它看作:

/theregex/gi 

火狐,但是,將反對任何無效的標誌。尼克在答案中指出了有效的。

6

沒有d標誌,這是你的問題:)有:

  • g - 全球搜索(多個匹配)
  • i - 忽略大小寫
  • m - 多輸入
0

您確定它實際上是確實 Chrome中的東西嗎?我想:

/projects\/[^/]+/zyx 

它可以接受,作爲/projects\/[^/]+/,但我強烈懷疑這些都是真實的擴展。這只是無視他們。正如Ken所指出的那樣,即使存在無效標誌,它也會保持有效標誌。

此外,我建議您遵循good tutorial,而不是隻剪切和粘貼。