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
Exemple
#const title = 'Module 7: Boucles'
console.log(title.substring(0, 6))
console.log(title.substring(10))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
#string.substring(indexStart)
string.substring(indexStart, indexEnd)Paramètres
#indexStart
number
Indice du premier caractère du résultat. Les valeurs négatives etNaNsont converties en0.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 queindexStart, les arguments sont échangés.
Plus d’exemples
#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)const message = 'Félicitations [Léa], module terminé !'
const start = message.indexOf('[') + 1
const end = message.indexOf(']')
console.log(message.substring(start, end))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
#- String.prototype.slice()Renvoie un fragment de la chaîne entre un indice de départ et un indice de fin (exclu). Prend en charge les indices négatifs.
- String.prototype.indexOf()Renvoie l’indice de la première occurrence du texte donné dans une chaîne, ou -1 s’il est absent.
- String.prototype.split()Découpe une chaîne en un tableau de fragments selon un séparateur : un caractère, un texte ou une expression régulière.
- String.prototype.at()Renvoie le caractère à l’indice donné. Les indices négatifs se comptent depuis la fin, donc at(-1) est le dernier caractère.
Vous voyez une erreur ou il manque un exemple ? Écrivez-nous.