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
Thèmes : javascript
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