Comment savoir si une chaine contient une autre chaine en JavaScript ?
Réponses rédigées par Antoine
Dernière mise à jour : 2017-11-06 15:42:53
Question
J'ai plusieurs chaines de caractères et je voudrais identifier toutes celles qui contiennent le mot java, j'ai essayé avec String.contains() mais ça n'a pas l'air de fonctionner.
Réponse
Il existe plusieurs méthodes en JavaScript pour identifier une chaine de caractères ou un string:
Avec indexOf
var string = "une chaine qui contient java";
var substring = "java";
if (string.indexOf(substring) !== -1)
{
alert("java trouvé");
}
String.prototype.indexOf renvoie la position de la chaîne dans l'autre chaîne. S'il n'est pas trouvé, il retournera -1 .
voir https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf
Avec includes
var string = "une chaine qui contient java";
substring = "java";
string.includes(substring);
Avec search
var string = "une chaine qui contient java";
expr = /java/;
string.search(expr);
Avec lodash includes
var string = "une chaine qui contient java";
substring = "java";
_.includes(string, substring);
Avec RegExp
var string = "une chaine qui contient java";
expr = /java/;
expr.test(string);
Avec Match
var string = "une chaine qui contient java";
expr = /java/;
string.match(expr);
Tu trouveras un test comparatif de performance sur http://jsben.ch/RVYk7