簡體   English   中英

從元素列表中找到匹配的模式

[英]finding a matching patterns from the list of elements

我正在嘗試為用戶輸入到文本框的字符串找到匹配的模式,在大多數情況下,我的代碼都成功完成了代碼,在某些情況下發現了bt ive,但未返回所有需要的結果。 我將附加一個jsfiddle鏈接以顯示其錯誤,我還將粘貼代碼以供將來參考

http://jsfiddle.net/faphf/2/

$("#facetSearchBox").live("keyup",
    function() {
        $("#test").empty();
        facetSearch();
    });



 function facetSearch(){ 
 var facetSearchTerm = $("#facetSearchBox").val();
 facetSearchTerm = facetSearchTerm.toLowerCase();
 var inputArray=["mark zuckerberg","ben s bernanke","ben bernanke","sven grundberg",    "michael bloomberg","robert powell","kenneth lieberthal","frank boulben"];

  var re = new RegExp(facetSearchTerm, "ig");
  var outputArray = inputArray.filter(function(item) {
     return re.test(item);
});
for(var k=0; k<outputArray.length;k++){
$("#test").append(outputArray[k] + "<br>" );
}
}

嘗試搜索ben,它不會返回所有想要的結果...如果您可以幫助我告訴代碼出什么問題,將會很有幫助?

從您的正則表達式中刪除全局修飾符g 之后應該可以正常工作。

var re = new RegExp(facetSearchTerm, "i");

測試鏈接: http : //jsfiddle.net/faphf/5/

編輯:

為什么在Java中帶有全局標志的RegExp給出錯誤的結果?

采用:

 var re = new RegExp( facetSearchTerm, "i");

參見: 小提琴

對於單詞邊界匹配:

 var re = new RegExp("\\b" + facetSearchTerm, "i");

參見: 小提琴

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM