JavaScript Fonctions de recherche et de remplacement de chaîne


Exemple

Pour rechercher une chaîne dans une chaîne, il existe plusieurs fonctions:

indexOf( searchString ) et lastIndexOf( searchString )

indexOf() retournera l'index de la première occurrence de searchString dans la chaîne. Si searchString n'est pas trouvé, -1 est renvoyé.

var string = "Hello, World!";
console.log( string.indexOf("o") ); // 4
console.log( string.indexOf("foo") ); // -1

De même, lastIndexOf() retournera l'index de la dernière occurrence de searchstring ou -1 s'il n'est pas trouvé.

var string = "Hello, World!";
console.log( string.lastIndexOf("o") );   // 8
console.log( string.lastIndexOf("foo") ); // -1

includes( searchString, start )

includes() retourne un booléen qui indique si searchString existe dans la chaîne, à partir de l' index start (par défaut 0). C'est mieux que indexOf() si vous avez simplement besoin de tester l'existence d'une sous-chaîne.

var string = "Hello, World!";
console.log( string.includes("Hello") ); // true
console.log( string.includes("foo") );   // false

replace( regexp|substring, replacement|replaceFunction )

replace() renvoie une substring contenant toutes les occurrences de sous-chaînes correspondant à l' regexp RegExp ou à la substring avec un replacement chaîne ou la valeur renvoyée par replaceFunction .

Notez que cela ne modifie pas la chaîne en place, mais renvoie la chaîne avec des remplacements.

var string = "Hello, World!";
string = string.replace( "Hello", "Bye" );
console.log( string ); // "Bye, World!"

string = string.replace( /W.{3}d/g, "Universe" );
console.log( string ); // "Bye, Universe!"

replaceFunction peut être utilisé pour les remplacements conditionnels d'objets d'expression régulière (c.-à-d. avec l'utilisation d' regexp ). Les paramètres sont dans l'ordre suivant:

Paramètre Sens
match la sous-chaîne qui correspond à l'expressiong entière régulière
g1 , g2 , g3 , ... les groupes correspondants dans l'expression régulière
offset le décalage du match dans la chaîne entière
string la chaîne entière

Notez que tous les paramètres sont facultatifs.

var string = "heLlo, woRlD!";
string = string.replace( /([a-zA-Z])([a-zA-Z]+)/g, function(match, g1, g2) {
    return g1.toUpperCase() + g2.toLowerCase();
}); 
console.log( string ); // "Hello, World!"