COURS JavaScript


Accueil | Les Chaînes de caractères : Eclatement d'une chaîne dans un vecteur

Titre

Généralités

Nous connaissons les chaînes de caractères. Ce sont simplement des caractères mis les uns au bout des autres et qui se trouvent être (pour JavaScript) des objets de type String. Nous savons aussi que ces chaînes sont considérées comme étant dans une table indexée (un vecteur) et que chaque caractère est dans un poste de cette table. Le premier à l'index 0, le deuxième à l'index 1 etc. Ca nous permet de faire des recherches précises sur une position d'un caractère particulier et mille autres choses que nous avons déjà étudiées.
Il peut être parfois intéressant de pouvoir séparer les mots d'une phrase entière en les plaçant chacun dans une case d'une table pour pouvoir y avoir accès sans mal.

C'est ce que propose la méthode .split() une méthode de l'objet String.



Comment ça marche

Reprenons comme toujours le même exemple puisque nous en avons l'habitude. Soit par exemple la chaîne de caractères :

Index
0
1
2
3
4
5
6
7
8
9
10
11
12
13
Contenu
P
h
i
l
i
p
p
e
 
M
é
d
a
n

Nous avons dans une seule chaîne de caractères le nom et le prénom. Pour les retrouver nous devrons les séparer l'un de l'autre. La méthode .split() de l'objet String (chaîne de caractères) va justement nous permettre d'éclater cette chaîne en deux sous-chaînes à partir du moment où nous connaissons le caractère qui sépare les deux mots qui nous intéresse. Ici, ce séparateur est simplement un espace. Non seulement cette méthode sépare les mots en fonction du séparateur que nous indiquerons, mais encore a la gentillesse de ranger bien soigneusement chaque sous-chaîne ainsi crée dans une table à partir de l'index 0 (zéro). Comment ? Mais c'est très simple encore une fois...



Syntaxe de la méthode.

Comme toute méthode, elle s'applique à un objet. Ici, nous dirons que l'objet de type String sera la variable MonNom qui contiendra la chaîne "Philippe Médan". Nous aurons déjà écrit :

var MonNom ; // déclaration de la variable
MonNom = "Philippe Médan" ; // création de la chaîne de caractères

Nous créerons aussi une variable pour recevoir le résultat de l'application de la méthode .split() à cet objet de type String. Disons par exemple EtatCivil.

var EtatCivil ; // déclaration de la variable.

La syntaxe exacte de la méthode .split() appliquée à cet objet est la suivante :

EtatCivil = MonNom.split(séparateur, Nb de sous-chaînes) ;

où :
"séparateur" représente le caractère sur lequel la méthode fera la séparation des sous-chaînes. Si comme ici nous voulons que la chaîne soit éclatée en morceaux séparés par un espace, nous écrirons :

EtatCivil = MonNom.split(" " , Nb de sous-chaînes) ;

et où :
"Nb de sous-chaînes" représente le nombre maximum de sous-chaînes que nous voulons retrouver à la fin. Si on ne met rien (c'est le cas le plus fréquent) la méthode éclate la chaîne de caractères en autant de sous-chaînes que nécessaire chaque fois qu'elle rencontre le séparateur (ici un espace) entre deux mots dans la chaîne de caractères à éclater.
Dans notre exemple, nous écrirons simplement :

EtatCivil = MonNom.split(" ") ;

Et dans la variable EtatCivil, nous retrouverons une table dans laquelle il y aura, au poste 0 (zéro) la sous-chaîne "Philippe" et au poste 1 (un) la sous-chaîne "Médan". Nous pourrons désormais avoir accès au nom et au prénom en écrivant :

var Prenom = EtatCivil[0] ;
var Nom = EtatCivil[1] ;

En fait, en plus d'éclater la chaîne de caractères en sous-chaînes, la méthode .split() fait en sorte que la variable EtatCivil devienne une table indexée (un vecteur) sans que nous ayons eu à la déclarer comme telle. Pratique non ? Nous verrons plus tard dans la leçon sur les cookies que ça va bien nous simplifier la vie....

Le séparateur sert à la méthode à séparer la chaîne principale en sous-chaînes, mais ce séparateur est retiré et n'apparaît pas dans le résultat. Par exemple si le séparateur est un "e", tous les "e" seront enlevés dans le résultat. Essayez plus bas pour voir ce que ça donne. Ici, vous obtiendrez "Philipp" et "Médan". En plus, la casse (majuscule et minuscule) est importante. "P" est différent de "p".

Pour que vous puissiez mieux comprendre comment agit cette méthode, je vous ai préparé un exercice interactif dans lequel vous pourrez saisir une chaîne de caractères et un séparateur ainsi qu'un nombre d'occurrences maximum et ça vous affichera le résultat dans une fenêtre d'alert. Vous le trouverez ci-dessous. Amusez-vous bien...



Exemple interactif.

Attention. Ici, le séparateur est déjà positionné en tant qu'espace (mais il ne se voit pas). Si vous mettez le curseur dans la champ "Séparateur" , vous verrez qu'il y est.
En plus il faut saisir une valeur pour Nombre maxi, autrement il considère que c'est zéro et rien ne sort.
Si le séparateur n'existe pas dans la chaîne principale, elle est laissée telle quelle. Rien n'est séparé. A vous de jouer...

Saisissez une chaîne quelconque
Indiquez le séparateur
Nombre maximum de sous-chaînes
 



Ce cours est enseigné par Philippe Médan 
dans le cadre de la formation des professionnels de l'INTERNET.
au CREFAC , 14 rue Scandicci, 93000 Pantin. Tél. : 01 48 46 51 99
au GITA-GRETA , Lycée Technologique Diderot 61, rue David D'Angers 75019 Paris Tél. : 01 40 40 36 27
au CESI à l'Ecole des ingénieurs, 116 Av Aristide Briand, BP 57, 92224 Bagneux CEDEX Tél. : 01 45 36 70 00
au CFA-AFIA Centre de Formation par l'Apprentissage spécialisé en Informatique DUT Licence MIAGE,
PUIO - Bâtiment 640 - Plateau du Moulon - 91405 Orsay Tél. : 01 69 15 35 19.

© Philippe Médan 1999-2007. Tous droits de reproduction réservés pour tous pays.