我有一個RegExp
:的Javascript正則表達式匹配的怪事
/.?(NCAA|Division|I|Basketball|Champions,|1939-2011).?/gi
和一些文字"Champion"
不知何故,這是回來的比賽,我是不是瘋了?
0: "pio"
1: "i"
index: 4
input: "Champion"
length: 2
循環是在這裏:
// contruct the pattern, dynamically
var someText = "Champion";
var phrase = ".?(NCAA|Division|I|Basketball|Champions,|1939-2011).?";
var pat = new RegExp(phrase, "gi"); // <- ends up being
var result;
while(result = pat.exec(someText)) {
// do stuff!
}
必須有我的正則表達式什麼不對,對不對?
編輯: .?
事情只是一個快速和骯髒的嘗試說,我想匹配其中一個單詞和/或這些單詞之一與單一字符在任何一方。例如:
\sNCAA\s
NCAA
NCAA\s
\sNCAA
目標: 我試圖做一些簡單的詞突出顯示基於某些搜索詞。我有一個函數可以獲取頁面上的所有文本節點,並且我希望通過它們來突出顯示我的phrase
變量中任何術語的匹配。
我認爲我只需要重新建立我的RegExp。
'pat'是一個RexExp對象還是一個字符串?在你的代碼中,它是一個字符串。 – 2011-04-12 14:08:03
@Matt它實際上是一個RegExp,讓我修復代碼...我認爲這兩種方式都有效,不是嗎? – samandmoore 2011-04-12 14:10:29
你從來沒有真正指出你想要發生什麼或你期望在這裏發生什麼。現在它不是那麼明顯。 – Groovetrain 2011-04-12 14:17:59