COURS JavaScript


Accueil | Les éléments de base du langage JavaScript | Travail sur les chaînes de caractères :

Travail sur les chaînes de caractères (deuxième partie)


Généralités

Pour pouvoir profiter valablement de cette leçon, il faut d'abord avoir vu la première partie. Ensuite, vous comprendrez mieux ce que nous allons dire.



Les autres fonctions de manipulation des chaînes de caractères

Nous allons voir ici, comment travailler sur le contenu de la chaîne, élément (caractère) par élément.

Méthodes de manipulation des chaînes de caractères :



Trouver une sous-chaîne particulière dans une chaîne principale.

Pour pouvoir travailler correctement sur une chaîne de caractères, il faut la mettre dans une variable. Prenons toujours le même exemple :

MonNom = "Philippe Médan"

MonNom est la variable. Son contenu est : Philippe Médan (placé entre guillemets, pour bien montrer que c'est une chaîne de caractères).

Nous avons déjà dit que JavaScript considère une chaîne de caractères (un objet de type "String") comme une suite d'éléments (les caractères de la chaîne) et qu'ils les range (ces éléments) dans un vecteur d'une manière transparente pour nous. Mais il le fait bien quand même, soyez rassurés. En fait, si nous illustrons notre exemple et que nous représentions schématiquement comment fait JavaScript, nous aurions une vue qui ressemblerait à ceci : Le vecteur s'appelle MonNom

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

Notez toujours (c'est vraiment important) que le premier poste de la table porte l'index 0. Et nous avons bien 14 éléments.

En fait, la fonction .indexOf(sous-chaîne) va nous permettre de retrouver (dans la chaîne principale MonNom) la position du premier caractère correspondant à la sous-chaîne recherchée, si celle-ci existe. Nous récupérerons alors le résultat dans une variable de notre cru, par exemple ouEst.
Pour bien comprendre comment fonctionne la recherche d'une sous-chaîne dans une chaîne principale, prenons des exemples : par exemple, recherchons la sous-chaîne "Médan" dans MonNom
Nous écrirons :

ouEst = MonNom.indexOf("Médan")

Nous récupérerons alors la valeur 9. ATTENTION : ça ne veut pas dire (pour nous humains normaux) que le début de la sous-chaîne "Médan" commence au 9ème caractère de la chaîne principale MonNom ! Mais au 10 ème. A cause du fait que le premier poste de notre table est bien un 0. Je ne saurais dire combien de fois je me suis planté dans des programmes lorsque j'ai débuté à cause de cette particularité !

Bien entendu, la sous-chaîne peut elle aussi être mise dans une variable, par exemple la variable SousChaine . Dans ce cas, nous écrirons :

SousChaine = "Médan";

ouEst = MonNom.indexOf(SousChaine)

Ce qui revient exactement au même.

ATTENTION :
Si par hasard, la chaîne recherchée n'existe pas dans la chaîne principale, le résultat renvoyé est -1 (moins 1). Et comme d'habitude, il faut tenir compte des majuscules et des minuscules. "Médan" existe dans la chaîne principale, par contre "médan" n'existe pas pour JavaScript.
Par contre si la chaîne recherchée est vide, la position renvoyée sera 0. Et non pas -1 comme on aurait pu s'y attendre. Ce qui ne veut pas dire que le premier caractère de la chaîne soit vide !!! Mais ça n'est pas moi qui ai inventé JavaScript. Désolé !

Pour bien comprendre comment tout ceci fonctionne, utilisez l'exemple interactif ci-dessous.
Tapez (ou laissez la valeur actuelle) une valeur dans le champ de la chaîne principale, tapez une sous chaîne à rechercher dans le champ sous-chaîne recherchée, et cliquez sur le bouton "Voir la position". En prenant diverses valeurs de l'une et de l'autre, vous comprendrez mieux le fonctionnement. Faites attention aux majuscules et aux minuscules.

Chaîne principale MonNom

Sous-Chaîne recherchée SousChaine


Variante en spécifiant le point de départ de la recherche.

Il existe une variante à cette fonction de recherche dans une chaîne de caractères. Si comme nous venons de le faire, on ne spécifie rien d'autre que la sous-chaîne recherchée, la recherche commence à la position 0 de la chaîne de caractères, c'est à dire au premier caractère de la chaîne principale. Pour diverses raisons, nous pouvons avoir besoin de commencer la recherche à un autre emplacement dans la chaîne principale. La fonction .indexOf() permet de donner le départ de la recherche. Si nous voulons que la recherche commence au 6ème caractère de notre chaîne principale (index 5), nous écrirons alors :

var depart = 5
var SousChaine = "Philippe"
var ouEst = MonNom.indexOf(Souschaine, depart)

et la recherche ne commencera qu'à la position 5 de la chaîne principale, en ignorant tout ce qui se trouve avant la position 5 de la chaîne principale. Ce qui dans cet exemple, renverra -1 dans ouEst puisque la sous-chaîne "Philippe" n'existe pas dans la chaîne principale entre la position 5 et la fin de la chaîne.

 



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.