La méthode split()
permet de diviser une chaîne de caractères à partir d'un séparateur pour fournir un tableau de sous-chaînes.
Syntaxe
str.split([séparateur][, qtéMax])
Paramètres
séparateur
- Paramètre optionnel qui définit le ou les caractères à utiliser pour scinder la chaîne. Le
séparateur
est considéré comme une chaîne ou une expression rationnelle. Siséparateur
est omis, le tableau retourné contiendra un unique élément contenant la chaîne entière. Si leséparateur
est une chaîne vide, la chaînestr
sera convertie en un tableau de caractères. qtéMax
- Paramètre optionnel. Un entier définissant la limite sur le nombre de sous-chaînes à retourner. La méthode
split
scindera toujours la chaîne à partir duséparateur
, mais le tableau retourné contiendra au plusqtéMax
sous-chaînes.
Valeur de retour
Un tableau qui contient les fragments de la chaîne appelante, découpée en fonction du séparateur indiqué.
Description
La méthode split()
retourne un nouveau tableau.
Lorsqu'il est trouvé, le séparateur
est supprimé de la chaîne et les sous-chaînes sont retournées dans un tableau. Si le séparateur
est omis, le tableau contiendra un élément correspondant à la chaîne courante. Si le séparateur
est une chaîne vide, la chaîne courante est convertie en un tableau composé des caractères de la chaîne.
Si le séparateur
est une expression rationnelle qui contient des parenthèses groupantes, à chaque fois que le séparateur
correspond, les résultats (incluant tout résultat indéfini) des groupes iront dans le tableau retourné. Cependant, tous les navigateurs ne supportent pas cette possibilité.
split()
retourne un tableau contenant une chaîne vide, plutôt qu'un tableau vide. Si la chaîne et le séparateur sont tous les deux des chaînes vides, un tableau vide sera renvoyé.Exemples
Utiliser split()
L'exemple suivant définit une fonction qui divise une chaîne en un tableau de chaînes selon un délimiteur spécifié. Après la coupe de la chaîne, la fonction affiche des messages indiquant la chaîne initiale (avant la coupe), le délimiteur utilisé, le nombre d'éléments dans le tableau, et les éléments du tableau retourné.
function splitString(stringToSplit, separator) { var arrayOfStrings = stringToSplit.split(separator); console.log('La chaine d\'origine est : "' + stringToSplit + '"'); console.log('Le délimiteur est : "' + separator + '"'); console.log("Le tableau comporte " + arrayOfStrings.length + " elements : "); for (var i=0; i < arrayOfStrings.length; i++) print(arrayOfStrings[i] + " / "); } var tempestString = "Oh brave new world that has such people in it."; var monthString = "Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec"; var espace = " "; var virgule = ","; splitString(tempestString, espace); splitString(tempestString); splitString(monthString, virgule);
Cet exemple produira la sortie suivante :
La chaine d'origine est : "Oh brave new world that has such people in it." Le délimiteur est : " " Le tableau comporte 10 elements : Oh / brave / new / world / that / has / such / people / in / it. / La chaine d'origine est : "Oh brave new world that has such people in it." Le délimiteur est : "undefined" Le tableau comporte 1 elements : Oh brave new world that has such people in it. / La chaine d'origine est : "Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec" Le délimiteur est : "," Le tableau comporte 12 elements : Jan / Feb / Mar / Apr / May / Jun / Jul / Aug / Sep / Oct / Nov / Dec /
Supprimer les espaces d'une chaîne
Dans l'exemple suivant, split
recherche zéro ou plusieurs espaces suivis d'un point-virgule, lui-même suivi par zéro ou plus espaces. Lorsque ce « motif » est trouvé, cela supprime celui-ci de la chaîne. nameList
est le tableau retourné du résultat de split
.
var names = "Harry Trump ;Fred Barney; Helen Rigby ; Bill Abel ;Chris Hand "; console.log(names); var re = /\s*;\s*/; var nameList = names.split(re); console.log(nameList);
Ceci affichera deux lignes dans la console ; la première ligne correspondant à la chaîne d'origine, et la seconde au tableau de résultats.
Harry Trump ;Fred Barney; Helen Rigby ; Bill Abel ;Chris Hand ["Harry Trump","Fred Barney","Helen Rigby","Bill Abel","Chris Hand"]
Retourner un nombre limité de sous-chaînes
Dans l'exemple suivant, split()
recherche zéro ou plusieurs espaces dans une chaîne et retourne les 3 premières sous-chaînes qui correspondent.
var myString = "Hello World. How are you doing?"; var splits = myString.split(" ", 3); console.log(splits);
Ce script affichera :
Hello,World.,How
Parenthèses capturantes
Si le paramètre séparateur
est une expression rationnelle qui contient des parenthèses de capture, les résultats seront retournés dans le tableau.
var myString = "Hello 1 word. Sentence number 2."; var splits = myString.split(/(\d)/); /* Ce motif correspond à un chiffre et est équivalent à [0-9] */ console.log(splits);
Ce script affichera :
Hello ,1, word. Sentence number ,2,.
Inverser une chaîne en utilisant split()
var str = 'asdfghjkl'; var strReverse = str.split('').reverse().join(''); // 'lkjhgfdsa' // split renvoie un tableau sur lequel on peut appliquer reverse // enfin on utilise join pour assembler le tout.
Note : Si on souhaite tester si la chaîne courante est un palindrome, on pourra utiliser l'opérateur ===
.
Spécifications
Spécification | État | Commentaires |
---|---|---|
ECMAScript 3rd Edition (ECMA-262) | Standard | Définition initiale. Implémentée avec JavaScript 1.1. |
ECMAScript 5.1 (ECMA-262) La définition de 'String.prototype.split' dans cette spécification. |
Standard | |
ECMAScript 2015 (6th Edition, ECMA-262) La définition de 'String.prototype.split' dans cette spécification. |
Standard | |
ECMAScript 2017 Draft (ECMA-262) La définition de 'String.prototype.split' dans cette spécification. |
Projet |
Compatibilité des navigateurs
Fonctionnalité | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Support simple | (Oui) | (Oui) | (Oui) | (Oui) | (Oui) |
Fonctionnalité | Android | Chrome pour Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Support simple | (Oui) | (Oui) | (Oui) | (Oui) | (Oui) | (Oui) |
Voir aussi
String.prototype.charAt()
String.prototype.indexOf()
String.prototype.lastIndexOf()
Array.prototype.join()
ECMAScript 2015 (6th Edition, ECMA-262)
La définition de 'ArrayBuffer' dans cette spécification. Standard Définition initiale au sein d'un standard ECMA.
Compatibilité des navigateurs
Fonctionnalité | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Support simple | 7.0 | 4.0 (2) | 10 | 11.6 | 5.1 |
Fonctionnalité | Android | Chrome pour Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Support simple | 4.0 | (Oui) | 4.0 (2) | 10 | 11.6 | 4.2 |