String.prototype.substring()

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é comme str.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)

Voir aussi

Étiquettes et contributeurs liés au document

 Contributeurs à cette page : SphinxKnight, tregagnon, miam
 Dernière mise à jour par : SphinxKnight,