Les chaînes de caractères

Définition

Pour définir une variable qui contient une chaîne de caractères il faut encadrer le texte par des apostrophes (single quote) ou des guillemets (double quote) :

Les deux déclarations suivantes sont équivalentes :

Accès aux caractères de la chaîne

Dans une chaîne de caractères les positions des caractères sont numérotées en commençant à 0. Ainsi le premier caractère est en position 0, le second en position 1, etc.

Dans un programme, il est possible d'accéder à chaque caractère de la chaîne en indiquant sa position comme dans l'exemple suivant :

var nom=prompt("Entrez vote prénom");

print("La première lettre de votre prénom est : ");

println(nom[0]);

Exécuter

Comment cela fonctionne-t-il ?

La première lettre de la chaîne de caractères est numérotée 0. Pour y accéder nous écrivons : nom[0].

De façon générale, pour accéder au caractère qui figure à une position donnée, il faut écrire le nom de la variable qui contient la chaîne de caractères suivi du numéro de la position entre crochets.

Nombre de caractères dans une chaîne

Une chaîne de caractères est un objet du langage JavaScript, c'est à dire qu'en plus de stocker les caractères, une chaîne de caractères contient des propriétés et des méthodes.

Par exemple, il existe une propriété qui indique le nombre de caractères de la chaîne, cette propriété s'appelle length.

Observez comment nous utilisons la propriété length dans le programme suivant :

var nom=prompt("Entrez vote prénom");

print("Votre prénom comporte ");

print(nom.length);

println(" caractères.");

Exécuter

Comment cela fonctionne-t-il ?

Pour accéder à la propriété length de la chaîne de caractères nous écrivons : nom.length

Notez bien que nom.length est un nombre.

De manière générale, pour accéder à une propriété d'un objet il faut écrire le nom de la variable qui contient l'objet et accoler un point suivi du nom de la propriété.

Exercice

Ecrire un programme qui demande à l'utilisateur de saisir son prénom et qui affiche toutes les lettres l'une en dessous de l'autre.

Exécuter

Concaténation

La concaténation de deux (ou plusieurs) chaînes de caractères consiste tout simplement à les mettre bout à bout.

Cette action correspond à l'addition des chaînes comme dans l'exemple de programme ci-dessous :

var prenom=prompt("Entrez votre prénom :");

var nom=prompt("Entrez votre nom :");

println("Bonjour "+prenom+" "+nom+" !");

Exécuter

Comment cela fonctionne-t-il ?

Pour afficher le message, plutôt que d'écrire plusieurs instructions print successives, nous utilisons l'opération d'addition sur les chaînes de caractères : les différents éléments sont ainsi mis bout à bout.

Notez bien la présence d'espaces pour éviter d'avoir des mots collés.

Exercice

Voici un « squelette de programme » :

var chaine="";

var n=parseInt(prompt("Nombre de répetitions ?"));

...

println(chaine);

Ce programme demande la saisie d'un nombre, la chaîne de caractères entrée par l'utilisateur est convertie en nombre entier en utilisant l'instruction parseInt. C'est la variable n qui reçoit ce nombre.

Compléter le programme pour qu'il affiche le mot « ISN » le nombre de fois spécifié par l'utilisateur. Vous n'avez pas le droit d'utiliser les instuctions print ou println, vous devez faire en sorte que la variable chaine contienne le texte final à afficher.

Exécuter

Méthodes de l'objet String

Dans le vocabulaire du programmeur JavaScript, une chaîne de caractères est un objet String et comme nous l'avons indiqué plus haut, il contient plusieurs méthodes.

Ces méthodes permettent pour la plupart d'obtenir de nouvelles chaînes de caractères construites à partir de la chaîne initiale.

Supposons que maChaine soit une variable de type chaîne de caractères, le tableau ci-dessous montre quelques méthodes :

InstructionSignification
maChaine.toLowerCase()donne la chaîne avec toutes les lettres en minuscule
maChaine.toUpperCase()donne la chaîne avec toutes les lettres en majuscule
maChaine.trim()donne la chaîne avec les espaces éventuels en début et fin supprimés
maChaine.substring(a,b)donne la chaîne de caractères entre les positions a et b, position b exclue
maChaine.indexOf("toto")donne la position de la première occurrence de "toto"

Exercice

Testez les différentes méthodes indiquées dans le tableau ci-dessus.

Exécuter

Les caractères spéciaux en javascript

Pour afficher les caractères accentués dans du code javascript, il faut remplacer les caractères par leur valeur en octale, exemple :

é : \351
è : \350
ê : \352
à : \340

Voici une liste de caractères accentués ;

US-Kbd  Octal  Hex  Unicode  HTML         Details

Alt-"   \242   A2   U+00A2   ¢     ¢  cent sign
Alt-#   \243   A3   U+00A3   £    £  Pound sign (British)
Alt-$   \244   A4   U+20AC   €     €  Euro sign (in ISO-8859-15)
Alt-%   \245   A5   U+00A5   ¥      ¥  Yen sign (Japanese)
Alt-0   \260   B0   U+00B0   °      °  degrees

Alt-<   \274   BC   U+00BC   &frac14;   ¼  fraction one-quarter
Alt-<   \274   BC   U+0152   &OElig;    Π OE ligature, French (in ISO-8859-15)
Alt-=   \275   BD   U+00BD   &frac12;   ½  fraction one-half
Alt-=   \275   BD   U+0153   &oelig;    œ  oe ligature, French (in ISO-8859-15)
Alt->   \276   BE   U+00BE   &frac34;   ¾  fraction three-quarters
Alt->   \276   BE   U+0178   &Yuml;     Ÿ  Y diaeresis, French (in ISO-8859-15)

Alt-!   \241   A1   U+00A1   &iexcl;    ¡  upside-down exclamation mark
Alt-+   \253   AB   U+00AB   &laquo;    «  close (or open) chevron-style quotes
Alt-;   \273   BB   U+00BB   &raquo;    »  open (or close) chevron-style quotes
Alt-?   \277   BF   U+00BF   &iquest;   ¿  upside-down question mark

Alt-@   \300   C0   U+00C0   &Agrave;   À  capital A, grave accent
Alt-A   \301   C1   U+00C1   &Aacute;   Á  capital A, acute accent
Alt-B   \302   C2   U+00C2   &Acirc;    Â  capital A, circumflex accent
Alt-C   \303   C3   U+00C3   &Atilde;   Ã  capital A, tilde
Alt-D   \304   C4   U+00C4   &Auml;     Ä  capital A, umlaut mark
Alt-E   \305   C5   U+00C5   &Aring;    Å  capital A, ring
Alt-F   \306   C6   U+00C6   &AElig;    Æ  capital AE diphthong
Alt-G   \307   C7   U+00C7   &Ccedil;   Ç  capital C, cedilla
Alt-H   \310   C8   U+00C8   &Egrave;   È  capital E, grave accent
Alt-I   \311   C9   U+00C9   &Eacute;   É  capital E, acute accent
Alt-J   \312   CA   U+00CA   &Ecirc;    Ê  capital E, circumflex accent
Alt-K   \313   CB   U+00CB   &Euml;     Ë  capital E, umlaut mark
Alt-L   \314   CC   U+00CC   &Igrave;   Ì  capital I, grave accent
Alt-M   \315   CD   U+00CD   &Iacute;   Í  capital I, acute accent
Alt-N   \316   CE   U+00CE   &Icirc;    Î  capital I, circumflex accent
Alt-O   \317   CF   U+00CF   &Iuml;     Ï  capital I, umlaut mark
Alt-P   \320   D0   U+00D0   &ETH;      Ð  capital Eth, Icelandic
Alt-Q   \321   D1   U+00D1   &Ntilde;   Ñ  capital N, tilde
Alt-R   \322   D2   U+00D2   &Ograve;   Ò  capital O, grave accent
Alt-S   \323   D3   U+00D3   &Oacute;   Ó  capital O, acute accent
Alt-T   \324   D4   U+00D4   &Ocirc;    Ô  capital O, circumflex accent
Alt-U   \325   D5   U+00D5   &Otilde;   Õ  capital O, tilde
Alt-V   \326   D6   U+00D6   &Ouml;     Ö  capital O, umlaut mark
Alt-X   \330   D8   U+00D8   &Oslash;   Ø  capital O, slash
Alt-Y   \331   D9   U+00D9   &Ugrave;   Ù  capital U, grave accent
Alt-Z   \332   DA   U+00DA   &Uacute;   Ú  capital U, acute accent
Alt-[   \333   DB   U+00DB   &Ucirc;    Û  capital U, circumflex accent
Alt-\   \334   DC   U+00DC   &Uuml;     Ü  capital U, umlaut mark
Alt-]   \335   DD   U+00DD   &Yacute;   Ý  capital Y, acute accent
Alt-^   \336   DE   U+00DE   &THORN;    Þ  capital THORN, Icelandic
Alt-_   \337   DF   U+00DF   &szlig;    ß  sz ligature, German

Alt-`   \340   E0   U+00E0   &agrave;   à  small a, grave accent
Alt-a   \341   E1   U+00E1   &aacute;   á  small a, acute accent
Alt-b   \342   E2   U+00E2   &acirc;    â  small a, circumflex accent
Alt-c   \343   E3   U+00E3   &atilde;   ã  small a, tilde
Alt-d   \344   E4   U+00E4   &auml;     ä  small a, umlaut mark
Alt-e   \345   E5   U+00E5   &aring;    å  small a, ring
Alt-f   \346   E6   U+00E6   &aelig;    æ  small ae diphthong
Alt-g   \347   E7   U+00E7   &ccedil;   ç  small c, cedilla
Alt-h   \350   E8   U+00E8   &egrave;   è  small e, grave accent
Alt-i   \351   E9   U+00E9   &eacute;   é  small e, acute accent
Alt-j   \352   EA   U+00EA   &ecirc;    ê  small e, circumflex accent
Alt-k   \353   EB   U+00EB   &euml;     ë  small e, umlaut mark
Alt-l   \354   EC   U+00EC   &igrave;   ì  small i, grave accent
Alt-m   \355   ED   U+00ED   &iacute;   í  small i, acute accent
Alt-n   \356   EE   U+00EE   &icirc;    î  small i, circumflex accent
Alt-o   \357   EF   U+00EF   &iuml;     ï  small i, umlaut mark
Alt-p   \360   F0   U+00F0   &eth;      ð  small eth, Icelandic
Alt-q   \361   F1   U+00F1   &ntilde;   ñ  small n, tilde
Alt-r   \362   F2   U+00F2   &ograve;   ò  small o, grave accent
Alt-s   \363   F3   U+00F3   &oacute;   ó  small o, acute accent
Alt-t   \364   F4   U+00F4   &ocirc;    ô  small o, circumflex accent
Alt-u   \365   F5   U+00F5   &otilde;   õ  small o, tilde
Alt-v   \366   F6   U+00F6   &ouml;     ö  small o, umlaut mark
Alt-x   \370   F8   U+00F8   &oslash;   ø  small o, slash
Alt-y   \371   F9   U+00F9   &ugrave;   ù  small u, grave accent
Alt-z   \372   FA   U+00FA   &uacute;   ú  small u, acute accent
Alt-{   \373   FB   U+00FB   &ucirc;    û  small u, circumflex accent
Alt-|   \374   FC   U+00FC   &uuml;     ü  small u, umlaut mark
Alt-}   \375   FD   U+00FD   &yacute;   ý  small y, acute accent
Alt-~   \376   FE   U+00FE   &thorn;    þ  small thorn, Icelandic
 \377   FF   U+00FF   &yuml;     ÿ  small y, umlaut mark