La méthode substring()
retourne un sous-chaîne de la chaîne courante, entre un indice de début et un indice de fin.
Syntaxe
str.substring(indiceA[, indiceB])
Paramètres
indiceA
- Un entier compris entre 0 et la longueur de la chaîne.
indiceB
- Paramètre optionnel : un entier compris entre 0 et la longueur de la chaine.
Valeur de retour
Une nouvelle chaîne de caractères qui correspond à la section souhaitée de la chaîne appelante.
Description
substring
extrait des caractères de la chaîne courante à partir de indiceA
jusqu'à indiceB
(non compris). On a notamment :
- Si
indiceA
est égal àindiceB
,substring
retournera une chaîne vide. - Si
indiceB
est omis,substring
effectuera l'extraction des caractères jusqu'à la fin de la chaîne. - Si l'un des deux arguments est négatif ou vaut
NaN
, il sera traité comme 0. - Si l'un des deux arguments est plus grand que
str.length
, il sera traité commestr.length
.
Si indiceA
est supérieur à indiceB
, la fonction substring()
intervertira ces deux valeurs afin de les traiter comme si elles avaient été passées dans le bon ordre. Par exemple : str.substring(1, 0) == str.substring(0, 1)
.
Exemples
Utiliser substring()
Les exemples suivants utilisent la méthode substring()
pour extraire et afficher des caractères à partir de la chaine "Mozilla
" :
var uneChaîne = "Mozilla"; // Affiche "Moz" console.log(uneChaîne.substring(0,3)); console.log(uneChaîne.substring(3,0)); // Affiche "lla" console.log(uneChaîne.substring(4,7)); console.log(uneChaîne.substring(4)); console.log(uneChaîne.substring(7,4)); // Affiche "Mozill" console.log(uneChaîne.substring(0,6)); // Affiche "Mozilla" console.log(uneChaîne.substring(0,7)); console.log(uneChaîne.substring(0,10));
Remplacer une sous-chaîne dans une chaîne
L'exemple suivant remplace une partie d'une chaine. Elle remplace à la fois les caractères individuels et les sous-chaines. La fonction appelée à la fin de cet exemple transforme la chaine "Brave New World
" en "Brave New Web
".
function replaceString(oldS, newS, fullS) { // On remplace oldS avec newS dans fullS for (var i = 0; i < fullS.length; i++) { if (fullS.substring(i, i + oldS.length) == oldS) { fullS = fullS.substring(0, i) + newS + fullS.substring(i + oldS.length, fullS.length); } } return fullS; } replaceString("World", "Web", "Brave New World");
Attention : ceci peut résulter en une boucle infinie si oldS
est elle-même une sous-chaine de newS
-- par exemple, si on essaie de remplacer "World" par "OtherWorld". Une meilleure solution serait de remplacer les chaines de cette manière :
function replaceString(oldS, newS,fullS){ return fullS.split(oldS).join(newS); }
Le code ci-dessus sert d'exemple pour les opérations sur les sous-chaines. S'il est nécessaire de remplacer des sous-chaines, la plupart du temps il faudrait préférer l'utilisation de String.prototype.replace()
.
Spécifications
Spécification | État | Commentaires |
---|---|---|
ECMAScript 1st Edition (ECMA-262) | Standard | Implémentée avec JavaScript 1.0. |
ECMAScript 5.1 (ECMA-262) La définition de 'String.prototype.substring' dans cette spécification. |
Standard | |
ECMAScript 2015 (6th Edition, ECMA-262) La définition de 'String.prototype.substring' dans cette spécification. |
Standard | |
ECMAScript 2017 Draft (ECMA-262) La définition de 'String.prototype.substring' dans cette spécification. |
Projet |
Compatibilité des navigateurs
Fonctionnalité | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Support simple | (Oui) | (Oui) | (Oui) | (Oui) | (Oui) |
Fonctionnalité | Android | Chrome pour Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Support simple | (Oui) | (Oui) | (Oui) | (Oui) | (Oui) | (Oui) |