Retourner à la page d'accueil de TJS

Les chaînes de caractères

Tous les langages de programmation prévoient une gestion des chaînes de caractères. JavaScript est particulièrement adapté pour le traitement des chaînes.
1 - La déclaration des chaînes
2 - Les opérations sur les chaînes
3 - Des exemples utiles

La déclaration des chaînes

La déclaration
Pour déclarer une chaîne de caractères, vous pouvez utiliser les guillemets (") ou l'apostrophe (').
   var chaine1="Bonjour";
   var chaine2='Bonjour';
Ces deux lignes ont le même effet.

Cela se corse quand il s'agit d'initialiser une chaîne avec un de ces caractères :
   var chaine1="Bonjour l'ami";
   var chaine2='Je vous dis "Bonjour"';
Le secret est d'alterner les guillemets et les apostrophes selon les caractères spéciaux à afficher.

Il faut veillez à ne pas fermer la chaîne de caractères avant sa fin normale pour éviter les erreurs javascript. Exemple de déclaration incorrecte :
   var chaine1="Je vous dis "Bonjour"";
                            ^ici, le " indique la fin de chaîne


Il existe aussi une autre solution :
   var chaine1="Je lui dis \"Bonjour l'ami\"";
La variable chaine1 contient Je lui dis "Bonjour l'ami". Javascript a interprété \" comme un guillemet.

Les types de variables javascript
Les variables javascript ne sont pas typées, c'est-à-dire qu'elles n'ont pas de type prédéfini (entier, chaîne, ...) comme dans les autres langages. C'est le navigateur qui interprète dynamiquement le type le plus approprié. Par exemple :
   var chaine="azerty";
   var pi=3.14159;
La variable chaine est initialisée avec une chaîne de caractères.
La variable pi est initialisée avec un nombre.

Une variable peut être transformée en une chaîne de caractères à tout moment. Il est possible de modifier dynamiquement le type de la variable :
   var chaine="azerty";
   var pi=3.14159;
   chaine=pi;
   pi=pi+"2654";
A la fin de ce script, chaine est un nombre qui vaut 3.14159 ;
pi est une chaîne qui contient "3.14152654".

La différence peut sembler sans importance. Il n'en est rien. Quand une variable est un nombre, il est possible de lui appliquer des opérations (addition, multiplication, ...). Quand une variable est de type chaîne de caractères, on peut lui appliquer les méthodes propres aux objets chaînes.
JavaScript n'est pas exigeant sur le type des variables, mais si vous essayez d'appliquer une méthode de traitement des chaînes à un nombre, vous risquez une errreur.


Les opérations sur les chaînes
La concaténation
L'opération de base est la concaténation de chaînes. Elle consiste à assembler deux chaînes en une seule. L'opérateur est le +, à ne pas confondre avec l'opérateur addition qui s'applique aux nombres.
   var chaine1="Vive le ";
   var chaine2="JavaScript";
   var chaine=chaine1+chaine2;
La variable chaine contient après ce script "Vive le JavaScript".

La concaténation est une opération simple et très utile.

La longueur d'une chaîne
Une chaîne de caractères en javascript est un objet string sur lequel s'appliquent des propriétés et des méthodes. (Voir la page JavaScript, langage Objet pour plus d'informations)
La propriété length indique le nombre de caractères de la chaîne.
Pour une chaîne définie par var chaine="azerty";, chaine.length retourne le nombre de caractères, ici 6 caractères.

Récupérer le nième caractère
La méthode charAt(n) récupère le caractère n. Attention, le premier caractère a comme indice 0.
Pour une chaîne initialisée par var chaine="azerty", chaine.charAt(1) retourne "z".

Extraire une sous-chaîne
Il est utile de pouvoir extraire un morceau d'une chaîne. Par exemple, déclarons la variable date="15/08/2000". La question est de récupérer le jour, le mois et l'année dans 3 variables différentes.
   var date = "15/08/2000";
   var jour = date.substring(0,2);
   var mois = date.substring(3,5);
   var annee = date.substring(6,10);
Après ce script, jour vaut 15, mois vaut 08 et annee vaut 2000.
Cliquez sur ce bouton pour voir le résultat du script :
La méthode substring attend 2 paramètres :
 - l'indice du premier caractère (inclus),
 - l'indice du dernier caractère (exclus).
Si les deux paramètres sont inversés, javascript rétablit l'ordre logique :
  chaine.substring(6,10) et chaine.substring(10,6) auront le même effet.
Si le deuxième paramètre est omis, la chaine retournée commence à l'indice indiqué et se termine à la fin de la chaîne.

Retrouver une sous-chaîne dans une chaîne
Deux méthodes permettent de retrouver une sous-chaîne d'une chaîne. Ces méthodes retrouvent la position d'une chaîne et retourne son indice.
Par exemple, vous avez dans une variable javascript un nom de domaine et vous souhaitez retrouver l'extension :
   var domaine="www.toutjavascript.com";
   var extension=domaine.substring(domaine.lastIndexOf("."));
Voici un formulaire pour voir le résultat combiné de substring et lastIndexOf
La méthode lastIndexOf(souschaine) retourne l'indice de la dernière occurrence de souschaine.
Si la sous-chaîne n'est pas trouvé, lastIndexOf retourne -1.

Retrouver une sous-chaîne dans une chaîne, le retour
Il existe une autre méthode très proche
   chaine.indexOf(souschaine,debut)
qui retourne l'indice de la première occurrence de souschaine trouvée à partir du caractère debut de chaine.
Cette méthode permet par exemple d'extraire le domaine d'une url complète :
   var url="http://www.toutjavascript.com/magicmenu/index.html;
   var domaine=url.substring(7,url.indexOf("/",7));

La variable domaine contient dans cet exemple www.toutjavascript.com qui est une sous-chaine de url qui commence au caractère 7 et qui se termine au premier slash (/) après "http://".
Voici un formulaire pour voir le résultat combiné de substring et indexOf
MAJUSCULES / minuscules
JavaScript offre deux méthodes pour transformer les lettres (et uniquement les lettres) d'un mot en majuscules ou en minuscules.
   var chaine="Ceci est un texte";
   var maj=chaine.toUpperCase();
   var min=chaine.toLowerCase();

A la fin de ce script, maj contient :
   CECI EST UN TEXTE
et min contient :
   ceci est un texte
Vous pouvez essayer avec ce formulaire la transformation majuscule/minuscule.
Essayez aussi les caractères accentués.
On peut penser que ces traitements sont superflus. Ils permettent en fait de rendre plus homogène une saisie.
Imaginez que vos visiteurs remplissent un formulaire avec leurs coordonnées postales, certains mettront sans doute leur nom sans majuscule, le pays en minuscules... Grâce à ces méthodes, vous pourrez corriger leur saisie et avoir un fichier client homogène. Un exemple complet est traité dans le paragraphe suivant.

Quelques exemples utiles
Ce paragraphe présente des applications concrètes du traitement des chaînes de caractères.

Vérifier qu'un mail est valide
Pour vérifier qu'un mail est valide, il suffit de tester la présence de @ et du point.
   function verifiermail(mail) {
      if ((mail.indexOf("@")>=0)&&(mail.indexOf(".")>=0)) {
         return true
      } else {
         alert("Mail invalide !");
         return false
      }
   }
Cette fonction vérifie la présence du caractère @ et du . pour vérifier la validité. Si ces 2 caractères sont trouvés, la fonction retourne true sinon, elle affiche un message et retourne false.
Entrez une adresse mail
Les noms propres
Voici une fonction qui ajoute une majuscule à la première lettre d'un mot.
Par exemple pierre, Pierre ou PIERRE deviennent Pierre.
   function nompropre(mot) {
      var m=mot.charAt(0).toUpperCase() +
       mot.substring(1).toLowerCase();
      return m;
   }
Dans cette fonction, on récupère le premier caractère pour le mettre en majuscule et on lui ajoute le reste du mot forcé en minuscules.
Essayez grâce à ce formulaire :
Remplacer toutes les occurrences d'une sous-chaîne
Cette fonction recherche dans une chaîne expr toutes les occurrences d'une sous-chaîne a et les remplace par une sous-chaîne b.
Ce script fonctionne pour toutes les versions de navigateurs au-delà de 3.

   function Remplace(expr,a,b) {
      var i=0
      while (i!=-1) {
         i=expr.indexOf(a,i);
         if (i>=0) {
            expr=expr.substring(0,i)+b+expr.substring(i+a.length);
            i+=b.length;
         }
      }
      return expr
   }
Ici, on remplace "js" par "JavaScript" :
Les autres scripts du site en rapport avec les chaînes de caractères
    Moteur de recherche
    La protection par mot de passe
    Défilement dans la barre d'état
    Défilement dans un champ texte


Chercher une référence

Le graph des objets Javascript



Chargement
en cours...

Le guide complet du javascript

Le Guide Complet du JavascriptEn savoir plus sur mon livre aux Editions Micro Application