2012-12-18 2 views
0

J'essaie de trouver des motifs correspondants pour la chaîne qu'un utilisateur entre dans la zone de texte, j'ai réussi avec le code dans la plupart des cas avec mon code, bt ive trouvé dans certains cas, il ne retourne pas tous les résultats nécessaires. Je joins un lien jsFiddle pour montrer son wrking, je vais également coller le code pour les futures référencestrouver un motif correspondant de la liste des éléments

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>"); 
} 
} 

Essayez de chercher parmi ben, il ne reviendra pas tous les résultats escomptés ... il serait utile si vous pouviez m'aider à dire ce qui ne va pas avec le code?

Répondre

4

Supprimez le modificateur global g de votre expression Regular. Cela devrait fonctionner correctement après cela.

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

test Lien: http://jsfiddle.net/faphf/5/

EDIT:

Why RegExp with global flag in Javascript give wrong results?

+0

cela a fonctionné, bt il est utilisé pour trouver tous les matchs .. ?? droite – user1371896

+0

oui, il trouve tous les matches –

+0

cela a fonctionné ... et je vais l'accepter comme un bon ... bt voulais juste savoir le vrai problème, comme pourquoi il n'a pas travaillé .. je ne peux accepter la réponse qu'après 3 minutes – user1371896

1

Utilisation:

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

Voir: fiddle

Pour correspondance limite de mot:

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

Voir: fiddle

+0

c'était utile aussi ... merci .. – user1371896