2014-06-16 12 views
0

我有我的JavaScript代碼的麻煩,因爲匹配函數讀取'*'和'。'如同一樣。javascript搜索功能讀取'*'和'。'作爲相同

這裏是代碼: ''

var value = "sample*com"; 
var rules = new Array(".com ",".net",".org",".us",".ca",".com"); 
var found = 0; 
for (var i = 0; i < rules.length; i++) { 
    var filter = new RegExp('\\b' + rules[i] + '\\b', 'gi'); 
    if(value.match(filter)) { 
     found++; 
     console.log("found .com"); 
    } 
} 

的問題是,爲什麼腳本檢測*爲?因爲控制檯說「發現.com」,即使值=「sample * com」。

請幫助和提前致謝!

+0

我測試過''sample * com「.indexOf(」。「)'和'-1'被返回... – chris97ong

+0

它將它解釋爲正則表達式,其中」。「匹配任何字符 – McLovin

+0

http://scriptular.com/可以幫助你 – Mindeater

回答

7

您需要轉義..com\.com。否則,點匹配任何字符。所以在你的規則數組中,你將不得不將它轉義爲\\.com

+0

所以我的規則聲明看起來像這樣?var rules = new Array(「\。com」,「\。net」,「\。org」,「 \頁面沒有自動跳轉」, 「\ CA」, 「\ COM」)。。 – user3472449

+0

非常感謝Vivin。是工作。:)。 – user3472449

+0

很高興幫助! :) –