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.

Renvoie
Un nouveau tableau de chaînes.
Modifie l’original
Non
Sur cette page

Exemple

#
JavaScript
const tags = 'html,css,javascript'
const sentence = 'J’apprends à coder chaque jour'

console.log(tags.split(','))
console.log(sentence.split(' '))
console.log(tags.split(',', 2))
Console
['html', 'css', 'javascript']
['J’apprends', 'à', 'coder', 'chaque', 'jour']
['html', 'css']

Définition et utilisation

#

La méthode split() cherche un séparateur dans la chaîne et coupe le texte à chaque endroit où elle le trouve. Les fragments atterrissent dans un nouveau tableau, et le séparateur lui-même disparaît. C’est le moyen de base pour transformer un texte, par exemple une liste d’étiquettes séparées par des virgules ou une phrase, en tableau facile à traiter avec les méthodes de tableaux.

Le séparateur peut être un texte ou une expression régulière, par exemple /\s+/ pour n’importe quel nombre d’espaces. Une chaîne vide "" découpe le texte en unités UTF-16 individuelles, ce qui casse les emoji ; pour découper en caractères, préférez [...text]. Sans séparateur, vous obtenez un tableau avec la chaîne entière comme unique élément.

Le second argument, limit, limite le nombre d’éléments du résultat. Quand le séparateur se trouve au début, à la fin, ou deux fois de suite, des chaînes vides apparaissent dans le tableau. L’opération inverse est join() sur un tableau.

Syntaxe

#
Syntaxe
string.split(separator)
string.split(separator, limit)

Paramètres

#
  • separator

    string | RegExp, optionnel

    Texte ou expression régulière indiquant où découper. Omis, vous obtenez un tableau à un seul élément : la chaîne entière.
  • limit

    number, optionnel

    Nombre maximal d’éléments dans le résultat. Le reste du texte est ignoré.

Plus d’exemples

#
Espacement irrégulier
JavaScript
const input = '  React,   Vue ,Angular  '

const frameworks = input
  .split(',')
  .map((name) => name.trim())

console.log(frameworks)
console.log('un  deux   trois'.split(/\s+/))
Console
['React', 'Vue', 'Angular']
['un', 'deux', 'trois']
Éléments vides et découpage en caractères
JavaScript
console.log('a,,b,'.split(','))
console.log('mot'.split(''))
console.log('Salut👋'.split('').length, [...'Salut👋'].length)
Console
['a', '', 'b', '']
['m', 'o', 't']
7 6

Des chaînes vides apparaissent entre deux virgules et après la dernière. split("") coupe l’emoji en deux moitiés, c’est pourquoi il est plus sûr d’utiliser [...text] pour découper un texte en caractères.

Extraction de données simples
JavaScript
const row = 'Léa;120;JavaScript'
const [name, points, course] = row.split(';')

console.log(name, Number(points) + 30, course)

const lines = 'ligne 1\nligne 2\nligne 3'.split('\n')
console.log(lines.length)
Console
Léa 150 JavaScript
3

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

#
  • Après split(), il est souvent utile d’enchaîner map((part) => part.trim()), car les données saisies par des humains contiennent des espaces superflus.
  • Les nombres issus d’un découpage restent des chaînes. Convertissez-les avec Number() avant tout calcul, sinon "120" + 30 donne "12030".
  • Pour découper en caractères, utilisez [...text] ou Array.from(text). split("") coupe les emoji en moitiés incorrectes.

Entrées associées

#

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