[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Global_Objects/String/substring [Back]  [Original]

String.prototype.substring() - JavaScript | MDN

Cette page a t traduite partir de l'anglais par la communaut. Vous pouvez contribuer en rejoignant la communaut francophone sur MDN Web Docs.

View in English Always switch to English

String.prototype.substring()

Baseline Large disponibilit

Cette fonctionnalit est bien tablie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.

La mthode substring() retourne une sous-chane de la chane courante, entre un indice de dbut et un indice de fin.

Dans cet article

Exemple interactif

const str = "Mozilla";

console.log(str.substring(1, 3));
// Expected output: "oz"

console.log(str.substring(2));
// Expected output: "zilla"

Syntaxe

js
str.substring(indiceA[, indiceB])

Paramtres

indiceA

Un entier compris entre 0 et la longueur de la chane.

indiceB

Paramtre optionnel : un entier compris entre 0 et la longueur de la chaine.

Valeur de retour

Une nouvelle chane de caractres qui correspond la section souhaite de la chane appelante.

Description

substring extrait des caractres de la chane courante partir de indiceA jusqu' indiceB (non compris). On a notamment :

  • Si indiceA est gal indiceB, substring retournera une chane vide.
  • Si indiceB est omis, substring effectuera l'extraction des caractres jusqu' la fin de la chane.
  • Si l'un des deux arguments est ngatif 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 suprieur indiceB, la fonction substring() intervertira ces deux valeurs afin de les traiter comme si elles avaient t passes dans le bon ordre. Par exemple : str.substring(1, 0) == str.substring(0, 1).

Exemples

Utiliser substring()

Les exemples suivants utilisent la mthode substring() pour extraire et afficher des caractres partir de la chaine "Mozilla" :

js
var uneChane = "Mozilla";

// Affiche "Moz"
console.log(uneChane.substring(0, 3));
console.log(uneChane.substring(3, 0));

// Affiche "lla"
console.log(uneChane.substring(4, 7));
console.log(uneChane.substring(4));
console.log(uneChane.substring(7, 4));

// Affiche "Mozill"
console.log(uneChane.substring(0, 6));

// Affiche "Mozilla"
console.log(uneChane.substring(0, 7));
console.log(uneChane.substring(0, 10));

Remplacer une sous-chane dans une chane

L'exemple suivant remplace une partie d'une chaine. Elle remplace la fois les caractres individuels et les sous-chaines. La fonction appele la fin de cet exemple transforme la chaine "Brave New World" en "Brave New Web".

js
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 rsulter en une boucle infinie si oldS est elle-mme 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 manire :

js
function replaceString(oldS, newS, fullS) {
  return fullS.split(oldS).join(newS);
}

Le code ci-dessus sert d'exemple pour les oprations sur les sous-chaines. S'il est ncessaire de remplacer des sous-chaines, la plupart du temps il faudrait prfrer l'utilisation de String.prototype.replace().

Diffrence entre substring() et substr()

Il existe une lgre diffrence entre les mthodes substring() et substr(). Les deux ne doivent pas tre confondues.

Les arguments de la mthode substring() reprsentent les indices de dbut et de fin sur la chane. Pour substr(), les arguments reprsentent l'indice de dbut et le nombre de caractres utiliser pour la chane rsultante.

js
var texte = "Mozilla";
console.log(texte.substring(2, 5)); // => "zil"
console.log(texte.substr(2, 3)); // => "zil"

Diffrences entre substring() et slice()

Les mthodes substring() et slice() sont trs proches mais certaines diffrences les distinguent, notamment la faon de grer les arguments ngatifs.

La mthode substring() changera les deux arguments si indiceA est suprieur indiceB et renverra donc une chane de caractres. La mthode slice() n'change pas les arguments et renvoie donc une chane vide si le premier est suprieur au second :

js
var text = "Mozilla";
console.log(text.substring(5, 2)); // => "zil"
console.log(text.slice(5, 2)); // => ""

Si l'un ou l'autre des arguments sont ngatifs ou valent NaN, la mthode substring() les traitera comme s'ils valaient 0.

js
console.log(text.substring(-5, 2)); // => "Mo"
console.log(text.substring(-5, -2)); // => ""

slice() traite galement NaN comme 0, mais parcourt la chane partir de la fin lorsque des arguments ngatifs sont utiliss.

js
console.log(text.slice(-5, 2)); // => ""
console.log(text.slice(-5, -2)); // => "zil"

Pour plus d'exemples sur l'utilisation d'arguments ngatifs, voir la page slice().

Spcifications

Spcification
ECMAScript 2027 LanguageSpecification
# sec-string.prototype.substring

Compatibilit des navigateurs

Voir aussi


Web Proxy Viewer  |  New URL  |  Original Page