$a = 'how are you';
if (strpos($a,'are') !== false) {
echo 'true';
}
En PHP, nous pouvons utiliser le code ci-dessus pour vérifier si une chaîne contient des mots spécifiques, mais comment puis-je effectuer la même fonction dans JavaScript/jQuery?
Si vous cherchez des mots exacts et que vous ne voulez pas que cela corresponde à "cauchemar" (ce qui est probablement ce dont vous avez besoin), vous pouvez utiliser une expression régulière:
/\bare\b/gi
\b = Word boundary
g = global
i = case insensitive (if needed)
Si vous voulez juste trouver les caractères "sont", utilisez indexOf
.
Si vous souhaitez faire correspondre des mots arbitraires, vous devez créer par programme un objet RegExp (expression régulière) lui-même basé sur la chaîne Word et utiliser test
.
vous pouvez utiliser indexOf pour cela
var a = 'how are you';
if (a.indexOf('are') > -1) {
return true;
} else {
return false;
}
Edit : Ceci est une vieille réponse qui ne cesse de lever des votes de temps en temps, alors j’ai pensé que je devrais préciser que dans le code ci-dessus, la clause if
n’est pas obligatoire du tout parce que l’expression est un booléen. Voici une meilleure version de celle-ci que vous devriez utiliser,
var a = 'how are you';
return a.indexOf('are') > -1;
Mise à jour dans ECMAScript2016:
var a = 'how are you';
return a.includes('are'); //true
indexOf
ne doit pas être utilisé pour cela.CORRECTfonction:
function wordInString(s, Word){
return new RegExp( '\\b' + Word + '\\b', 'i').test(s);
}
wordInString('did you, or did you not, get why?', 'you') // true
Cela trouvera un mot, un vrai mot, pas seulement si les lettres de ce mot sont quelque part dans la chaîne.
Vous recherchez la fonction indexOf:
if (str.indexOf("are") >= 0){//Do stuff}
Vous voudrez peut-être utiliser include method dans JS.
var sentence = "This is my line";
console.log(sentence.includes("my"));
//returns true if substring is present.
PS: includes est sensible à la casse.
Cette volonté
/\bword\b/.test("Thisword is not valid");
return false
, quand celui-ci
/\bword\b/.test("This Word is valid");
retournera true
.
var str1 = "STACKOVERFLOW";
var str2 = "OVER";
if(str1.indexOf(str2) != -1){
console.log(str2 + " found");
}
Un moyen facile de le faire pour utiliser la méthode Regex match (): -
Par exemple
var str ="Hi, Its stacks over flow and stackoverflow Rocks."
// It will check Word from beginning to the end of the string
if(str.match(/(^|\W)stack($|\W)/)) {
alert('Word Match');
}else {
alert('Word not found');
}
Vérifiez le violon
REMARQUE: pour ajouter la sensibilité à la casse, mettez à jour l'expression rationnelle avec /(^|\W)stack($|\W)/i
.
Merci