Une ligne de fichier CSV, une liste de mots-clés séparés par des virgules, une date au format 2026-08-20 : le texte arrive presque toujours avec une structure cachée à l'intérieur.
split est l'outil qui la fait apparaître, en transformant une String (chaîne de caractères) en Array (tableau) exploitable.
Définition
split(separateur) découpe la chaîne à chaque endroit où le séparateur apparaît et rend un tableau des morceaux. Les séparateurs eux-mêmes ne figurent pas dans le résultat, et la chaîne d'origine n'est pas modifiée.
const entete = "nom,email,pays";
console.log(entete.split(",")); // [ 'nom', 'email', 'pays' ]
const [annee, mois, jour] = "2026-08-20".split("-");
console.log(jour); // "20"
console.log("aucune virgule ici".split(",")); // [ 'aucune virgule ici' ]La deuxième ligne combine split et la Destructuration, ce qui donne trois variables nommées en une seule instruction. La troisième rappelle un point utile : quand le séparateur est absent, le résultat est un tableau d'un élément, jamais un tableau vide.
Découper avec une expression régulière
Un séparateur peut aussi être un motif, ce qui permet de traiter les cas où l'espacement est irrégulier ou où plusieurs symboles séparent les valeurs.
console.log("a b c".split(" ")); // [ 'a', 'b', '', '', 'c' ]
console.log("a b c".split(/\s+/)); // [ 'a', 'b', 'c' ]
console.log("2026-08-20T10:30".split(/[-T:]/)); // [ '2026', '08', '20', '10', '30' ]La première ligne montre ce qui arrive avec un séparateur littéral : deux espaces consécutifs produisent une chaîne vide entre les deux. Le motif \s+, qui signifie « un ou plusieurs caractères d'espacement », règle le problème. Les motifs sont détaillés dans RegExp.
La limite, et le piège du séparateur vide
Un second argument facultatif borne le nombre de morceaux rendus. Le reste de la chaîne est abandonné, il n'est pas placé dans le dernier élément.
console.log("fr,en,es,de".split(",", 2)); // [ 'fr', 'en' ]
console.log("abc".split("")); // [ 'a', 'b', 'c' ]
console.log("a👍".split("")); // trois éléments, l'émoji est coupé en deux
console.log([..."a👍"]); // [ 'a', '👍' ], deux élémentsDécouper avec "" travaille sur des unités de code, pas sur des caractères visibles. Les émojis et certaines écritures occupent deux unités et se retrouvent coupés en morceaux illisibles. Pour obtenir les caractères réels, utilisez Spread (...) ou Array.from.
Questions fréquentes
Comment refaire une chaîne à partir du tableau ?
Avec join, l'opération inverse : ["fr", "en"].join(", ") rend "fr, en". L'aller-retour split puis join est la manière la plus courte de normaliser un séparateur, par exemple pour remplacer des points-virgules par des virgules.
Peut-on découper un vrai fichier CSV avec split ?
Sur des données simples, oui. Dès qu'un champ contient une virgule entre guillemets, un saut de ligne ou un guillemet échappé, le découpage naïf casse silencieusement. Le format est plus subtil qu'il n'y paraît, et une bibliothèque dédiée évite une catégorie entière de bugs de données.
Que rend split sans aucun argument ?
Un tableau contenant la chaîne entière, en un seul élément. C'est le cas à connaître quand le séparateur vient d'une variable qui peut valoir undefined : au lieu d'une erreur, vous recevez un tableau qui semble correct et un traitement qui ne découpe rien.