在數組中搜索正則表達式以查找JQuery自動完成功能無法正常工作。在JavaScript中搜索正則表達式
我有一個數組:
var names = [ "Jorn Zaefferer", "Scott Gonzalez", "John Resig" ];
這裏的JQuery的自動完成功能:
$("#developer").autocomplete({
source: function(request, response) {
var matcher = new RegExp('^'+request.term,'g');
var arr=new Array();
for(var i=0;i<names.length;i++)
{
var index=0;
if(matcher.test(names[i])===true) //not returning true
{
console.log("it is true");
arr.push(names[i]);
}
else
{
console.log("not done");
}
}
response(arr);
}
});
條件語句:
if(matcher.test(names[i])===true)
的代碼不返回true。爲什麼?
選項'g'不會留下任何垃圾或狀態。實際上,它對'test'沒有影響。 –
@MarioRossi - 對於'.test()'的[MDN doc](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/test)陳述如下:'As使用exec(或與它結合),在同一個全局正則表達式實例上多次調用的測試將超過前一次匹配。'如果這些代碼打算查找多個匹配,那麼會導致OP代碼出現問題。 – jfriend00
即使當'test'的**目標**發生變化時,如果您沒有說出來,我也會很難相信JavaScript的行爲。 –