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.

Renvoie
Une nouvelle chaîne contenant le fragment extrait, ou une chaîne vide quand la plage ne contient aucun caractère.
Modifie l’original
Non
Sur cette page

Exemple

#
JavaScript
const title = 'JavaScript en douceur'

console.log(title.slice(0, 10))
console.log(title.slice(11, 13))
console.log(title.slice(-7))
console.log(title)
Console
JavaScript
en
douceur
JavaScript en douceur

Définition et utilisation

#

La méthode slice() découpe un fragment de texte et le renvoie comme nouvelle chaîne. Le premier argument est l’indice de départ, le second l’indice où elle s’arrête, le caractère à cet indice n’étant pas inclus dans le résultat. Sans second argument, le fragment va jusqu’à la fin de la chaîne.

Les indices négatifs se comptent depuis la fin : -1 est le dernier caractère, -3 le troisième en partant de la fin. Cela rend text.slice(-4) très pratique pour récupérer les quatre derniers caractères, par exemple la fin d’un numéro de commande.

La chaîne d’origine ne change pas, car les chaînes en JavaScript sont immuables. Quand le début tombe après la fin, le résultat est une chaîne vide. Dans du code neuf, slice() est en général préférable à substring(), car elle se comporte comme slice() sur les tableaux.

Syntaxe

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

Paramètres

#
  • indexStart

    number

    Indice du premier caractère du fragment. Une valeur négative se compte depuis la fin de la chaîne.
  • indexEnd

    number, optionnel

    Indice avant lequel le fragment s’arrête (ce caractère n’entre pas dans le résultat). Par défaut, la longueur de la chaîne. Peut être négatif.

Plus d’exemples

#
Extension de fichier et masquage d’un numéro
JavaScript
const file = 'projet-final.html'
const extension = file.slice(file.lastIndexOf('.') + 1)

const orderId = 'CMD-2026-004815'
const masked = '*'.repeat(orderId.length - 4) + orderId.slice(-4)

console.log(extension)
console.log(masked)
Console
html
***********4815
Première lettre en majuscule
JavaScript
function capitalize(word) {
  return word.slice(0, 1).toUpperCase() + word.slice(1)
}

console.log(capitalize('paris'))
console.log(capitalize('javaScript'))
Console
Paris
JavaScript

Contrairement à word[0], appeler slice(0, 1) sur une chaîne vide renvoie "" au lieu de undefined, donc la fonction ne lèvera pas d’erreur.

Indices hors de la chaîne
JavaScript
const code = 'CSS'

console.log(code.slice(1, 100))
console.log(code.slice(5).length)
console.log(code.slice(2, 1).length)
Console
SS
0
0

Les indices trop grands sont ramenés à la longueur de la chaîne, et quand le début tombe après la fin, vous obtenez une chaîne vide. slice() n’échange pas ses arguments, contrairement à substring().

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

#
  • Pour récupérer les derniers caractères, utilisez un indice négatif : text.slice(-3) plutôt que text.slice(text.length - 3).
  • Rappelez-vous que l’indice de fin n’entre pas dans le résultat. La longueur du fragment est indexEnd - indexStart.
  • En découpant un texte avec des emoji, vous pouvez couper un caractère en deux, car les indices comptent des unités UTF-16. Transformez alors la chaîne en tableau de caractères : [...text].slice(0, 5).join("").

Entrées associées

#

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