String.prototype.substring()

Renvoie un fragment de la chaîne entre deux indices. Convertit les valeurs négatives en 0 et échange les indices inversés.

Renvoie
Une nouvelle chaîne contenant un fragment de l’original.
Modifie l’original
Non
Sur cette page

Exemple

#
JavaScript
const title = 'Module 7: Boucles'

console.log(title.substring(0, 6))
console.log(title.substring(10))
Console
Module
Boucles

Définition et utilisation

#

La méthode substring() renvoie la partie de la chaîne entre indexStart et indexEnd, sans le caractère situé à indexEnd. Avec des arguments positifs donnés dans le bon ordre, elle se comporte exactement comme slice().

Les différences apparaissent avec des arguments inhabituels. Les valeurs négatives et NaN sont traitées comme 0, donc substring(-3) renvoie toute la chaîne, et non les trois derniers caractères. Quand indexStart est plus grand que indexEnd, la méthode les échange silencieusement.

Ces corrections implicites favorisent des bugs difficiles à repérer, c’est pourquoi le code récent préfère en général slice(). Il reste utile de connaître substring(), car elle apparaît souvent dans du code plus ancien. Ne la confondez pas avec la méthode dépréciée substr(), dont le second argument est une longueur, pas un indice de fin.

Syntaxe

#
Syntaxe
string.substring(indexStart)
string.substring(indexStart, indexEnd)

Paramètres

#
  • indexStart

    number

    Indice du premier caractère du résultat. Les valeurs négatives et NaN sont converties en 0.
  • indexEnd

    number, optionnel

    Indice avant lequel le résultat s’arrête. Par défaut, la longueur de la chaîne. S’il est plus petit que indexStart, les arguments sont échangés.

Plus d’exemples

#
Différences avec slice()
JavaScript
const text = 'Programmation'

console.log(text.substring(-4))
console.log(text.slice(-4))
console.log(text.substring(7, 3))
console.log(text.slice(7, 3).length)
Console
Programmation
tion
gram
0
Texte entre crochets
JavaScript
const message = 'Félicitations [Léa], module terminé !'
const start = message.indexOf('[') + 1
const end = message.indexOf(']')

console.log(message.substring(start, end))
Console
Léa

Compatibilité des navigateurs

#

Largement disponible

Fonctionne dans tous les navigateurs modernes, y compris sur mobile. Vous pouvez l’utiliser sans crainte.

  • Chrome
  • Edge
  • Firefox
  • Safari

Bonnes pratiques

#
  • Dans du code neuf, préférez slice(). Elle prend en charge les indices négatifs et n’échange pas ses arguments en silence, donc les erreurs sont plus faciles à repérer.
  • Évitez la méthode dépréciée substr(start, length). Son second argument est une longueur, pas un indice de fin, ce qui prête facilement à confusion.

Entrées associées

#

Vous voyez une erreur ou il manque un exemple ? Écrivez-nous.