2012-05-21 3 views
0

J'essaie de parcourir un tableau de mots interdits. Cependant, j'essaie de faire correspondre le mot exactement: par exemple, je voudrais faire quelque chose s'il correspond à "chat" et non à "restauration". J'essaie donc de tester s'il y a des espaces avant et après le mot, pour voir s'il s'agit d'un seul mot et non d'un autre.Recherche avec un tableau d'expression

Voilà ma tentative:

var badWords = [ 
    "cat", 
    "catering", 
    "cattle" 
]; 

var string = ""; 
for (j=0;j<badWords.length;j++) { 
    var regex = "/\s" + badWords[j] + "\s/"; 
    if string.search(regex)) { 
    alert("works"); 
    } 
} 
+0

Si les « mots » ne sont faites que par des lettres, des chiffres et underscores, vous pouvez utiliser \ b à la place, ce qui est un marqueur zéro longueur de mot-end . Quoi qu'il en soit, quelle est votre question? – MaxArt

Répondre

2
var badWords = [ 
  "cat", 
  "catering", 
  "cattle" 
]; 

var string = "cat"; 
for (var j=0;j<badWords.length;j++) { 
    var patt = new RegExp("(^|\\b)" + badWords[j] + "(\\b|$)"); 
  if(patt.test(string)) { 
    console.log("works"); 
  } 
} 
+0

Merci :) ça fait ce dont j'ai besoin. – Steve

Questions connexes