Vous 黎es ici : Accueil des cours Misfu> Informatique> Apprendre la programmation> Cours Javascript> L'objet String - JavaScript

Traduction de la page Strings r馘ig馥 par Peter-Paul Koch et traduite par Christophe Bruggeman

La traduction est en cours, si vous trouvez une erreur sur une page ou si vous souhaitez sugg駻er une am駘ioration, n'h駸itez pas ? utiliser le forum .

String

split() et toString() ne fonctionnent pas dans Netscape 2 et Internet Explorer 3.

substr() n'est pas utilisable sur Netscape 2 et 3, Explorer 3, Hotjava 3, Opera 3 et WebTV.

Sur cette page j'explique ce qu'est un string puis je donne une vue d'ensemble des choses utiles que vous pouvez faire avec.

Les string sont simplement des groupes de caract鑽es, comme 'Javascript', 'Hello World!', 'http://www.quirksmode.org' ou encore '14'.

Quand vous 馗rivez du JavaScript, vous devez savoir ce qu'est un string et comment ils fonctionnent. Vous les emploierez beaucoup, puisque la plupart des choses que vous pouvez donner en lecture (l'URL d'une page, la valeur d'un champ de formulaire etc...) sont des string.

J'explique d'abord les bases des string. Puis j'explique la diff駻ence un peut troublante entre les string et les nombres dans le Javascript. Si vous avez une exp駻ience dans un autre language de programmation, lisez cette partie soigneusement.
Pour terminer je donne quelques unes des plus importantes utilisations et propri騁駸 des string.

Fonctionnement des string

passons en revue l'essentiel ? savoir sur les string.

Citations

Quand vous d馗larez et manipulez des strings dans du Javascript, Ecrivez-les toujours avec des simples quotes ' ou un guillemet " autour d'eux. Ceci permet d'indiquer au navigateur qu'il traite une cha?ne de caract鑽e (string). Ne vous m駘angez pas avec les quotes, si vous commencez un string avec un simple quote et le finissez avec un guillemet, le Javascript ne comprendra pas ce que voulez lui dire. En r鑒le g駭駻ale, j'emploie des simples quotes ' parce que j'ai d馗id? d'employer les guillemets pour le HTML et les simples quotes pour le Javascript. Vous pouvez naturellement faire ce qui vous arrange, mais je vous conseille de respecter quelques r鑒les pour vous-m麥es.

Introduisons nos deux strings que nous emploierons toute au long de cette page :

var a = 'Hello world!';
var b = 'I am a JavaScript hacker.'

Maintenant nous avons d馗lar? deux variables, a et b et mis les cha?nes de caract鑽es(string) ? l'int駻ieur. Apr鑚 avoir fait ceci, nous pouvons commencer ? travailler avec. Mais tout d'abord, un probl鑪e: supposez que j'馗rive

var b = 'I'm a JavaScript hacker.';

Cette cha?ne de caract鑽e contient un simple quote ' apr鑚 le I, le Javascript pense donc que la cha?ne de caract鑽e est fini, et ne comprend pas ce qui vient apr鑚, il envoie alors des messages d'erreur. Ainsi vous devez utiliser un caract鑽e d'馗happement devant le simple quote, indiquant ainsi au navigateur de traiter le quote ' comme un caract鑽e, et non pas comme une commande permettant de finir la cha?ne de caract鑽e. Faites ceci en pla軋nt un antislash \ devant lui :

var b = 'I\'m a JavaScript hacker.'

Notez que vous pouvez mettre des guillemets dans la cha?ne de caract鑽e sans les 馗happer. Apr鑚 tout, vous avez d馭ini le simple quote ' comme commencement et fin de la cha?ne de caract鑽e, ainsi

var b = 'I\'m a JavaScript "hacker".'

ne donne aucun probl鑪es. Les guillemets sont automatiquement trait? comme des parties de la cha?ne de caract鑽e, pas comme des commandes.

Fonctions pr鳬crites

Maintenant que vous avez d馭ini les strings, vous pouvez commencer ? les employer. Par exemple, vous pouvez ajouter un string ? un autre, vous pouvez prendre le deuxi鑪e et le quatri鑪e caract鑽e du string b et les placer au milieu de la cha?ne de caract鑽e a, vous pouvez faire ressortir en lecture ce que contient le douzi鑪e caract鑽e de a, et combien de caract鑽es contient b savoir aussi s'il y a un caract鑽e 'q' dans a et b etc...

Pour faire ceci, vous pouvez employer quelques fonctions automatiques que le Javascript assigne ? chaque string. Un d'elles est .length elle permet de donner la longueur d'un string. Ainsi si vous voulez obtenir la longueur de la cha?ne de caract鑽e 'Hello word!' vous pouvez faire :

var c = 'Hello world!'.length;

Mais plus haut nous avons mis cette cha?ne de caract鑽e dans la variable a. Vous faites ainsi de a un string, ainsi avec l'argument length ceci donnera le m麥e r駸ultat :

var c = a.length;

Une chose importante est de savoir que vous pouvez employer .length sur n'importe qu'elle cha?ne de caract鑽e : c'est un dispositif automatique. Vous pouvez donner en lecture la longueur length de n'importe quel string, si le Javascript le fait pour vous (avec location.href ou document.title) ou vous l'avez d馗lar? par vous-m麥es.
Je vous donne une liste de m騁hodes et de propri騁駸 automatiques ci-dessous.

String et nombres

Le Javascript n'est pas tr鑚 rigide au sujet de la diff駻ence entre les strings et les nombres. Quelques langages de programmation exigent de vous de pr馗iser si une variable est un nombre ou un string avant de faire toute autre chose avec elle, mais pas le Javascript. En fait vous pouvez m麥e ajouter des nombres ? des strings :

var c = a + 12;

Quelques langages de programmation s'arr黎eraient de suite si ils rencontraient cette ligne. Apr鑚 tout, a est un string et 12 est un nombre. Le Javascript, cependant, essaye de r駸oudre le probl鑪e en supposant 12 comme 駘駑ent d'un string. Ainsi c devient

Hello world!12

Ainsi si vous employez + sur un string et un nombre, le Javascript va faire du nombre un string pour vous. Encore mieux, si le besoin s'en fait sentir, vous pouvez traiter des nombres comme strings ou strings comme nombres.

R馗iproquement, si vous appliquez des math駑atiques ? un string, le Javascript essaye de le transformer en nombre. Si le string ne peut pas 黎re interpr騁? comme nombre (parce qu'il contient des lettres, par exemple), le Javascript donne NaN (Not a Number).

En conclusion, le Javascript ne fait aucune diff駻ence entre les nombres entiers et les r馥ls.

Conversion nombre vers string

toString() ne fonctionne pas dans Netscape 2 et Internet Explorer 3.

Pour convertir un nombre en string, faire :

var c = (16 * 24)/49 + 12;
d = c.toString();

Maintenant vous pouvez employer toutes les m騁hodes de strings sur d, tandis que c contient toujours un nombre.

Conversion String vers nombre

Si vous voulez changer une string en nombre, assurez-vous d'abord qu'il y a seulement les chiffres 0-9 dans le string. Ce que je fais toujours est de multiplier simplement le string par 1.

var c = '1234';
d = c * 1;

Etant donn? que la multiplication n馗essite des nombres, Javascript transforme le string un nombre, si possible. Si ce n'est pas possible, le r駸ultat est NaN. Notez que vous ne pouvez pas faire

var c = '1234';
d = c + 0;

Ceci retournerait '12340 'parce que le Javascript analyse le + comme une concat駭ation et non une addition.

M騁hodes et propri騁駸 des strings

Ainsi que pouvons-nous faire avec des strings? Voici une liste de commandes automatiques de Javascript. La concat駭ation est un cas particulier, mais toutes autres commandes peuvent 黎re employ馥s sur n'importe quelle string en faisant stringname.command().

Concat駭er des strings (+)

Tout d'abord, vous pouvez concat駭er des strings, en les cousant ensemble comme dans l'exemple :

document.write(a + b);

donne

Hello world!I am a JavaScript hacker.

Mais naturellement vous voulez un espace entre les deux phrases. Aucun probl鑪e. En faisant

document.write(a + ' ' + b);

nous concat駭ons trois strings : a, ' ' (un espace), et b et nous obtenons

Hello world! I am a JavaScript hacker.

Vous pouvez m麥e employer des nombres ou des calculs, comme:

document.write (a + 3*3 + b);

Maintenant nous concat駭ons le string a, puis le r駸ultat de 3*3, trait? comme string pour l'occasion, et enfin b, ce qui donne

Hello world!9I am a JavaScript hacker.

Attention cependant, si vous voulez ajouter des nombres, Ceci

document.write (a + 3+3 + b);

concat鈩e quatre strings : a, 3, 3 et b, parce que + dans ce contexte signifie concat駭er des string, et non pas ajouter

Hello world!33I am a JavaScript hacker.

Utilisez les parenth鑚es si vous voulez additionner 3 et 3 avant de mettre le string.

document.write (a + (3+3) + b);

concat鈩e a, le r駸ultat de 3+3 et b ce qui donne

Hello world!6I am a JavaScript hacker.

indexOf

Une des m騁hodes automatiques parmi les plus r駱andues est indexOf. Chaque caract鑽e ? un num駻o d'index, donnant sa position dans le string. Notez que le premier caract鑽e ? l'indice 0, le second d'indice 1 etc... Ainsi l'indice de 'w' dans le string a est 6.

Par l'emploie d'indexOf nous pouvons donner lecture au num駻o d'indice d'un caract鑽e. Mettez .indexOf('') derri鑽e le nom de la cha?ne de caract鑽e et mettez le caract鑽e que vous recherchez entre simples quotes ' ' . Ainsi

var a = 'Hello world!';
document.write(a.indexOf('w'))

donne 6. Si le m麥e caract鑽e revient plus d'une fois, cette m騁hode renverra la premi鑽e occurrence. Ainsi

document.write(a.indexOf('o'))

donne 4 parce que c'est l'indice du premier 'o' dans le string.

Vous pouvez aussi rechercher une combinaison des caract鑽es (c'est naturellement seulement un string, mais pour emp鹹her la confusion je ne l'appellerai pas ainsi). indexOf renvoie la position du premier caract鑽e de la combinaison. Ainsi

document.write(a.indexOf('o w'))

donne aussi 4 parce que c'est l'indice du 'o'.

En outre il est possible de rechercher un caract鑽e seulement apr鑚 un num駻o d'index. Par exemple, si vous faites

document.write(a.indexOf('o',5));

vous obtenez le num駻o d'index du premier 'o' venant apr鑚 le caract鑽e qui ? l'indice 5 (= l'espace), ainsi vous obtenez 7.

En conclusion, si le caract鑽e ou la combinaison n'est pas pr駸ente dans le string, indexOf retourne -1. C'est actuellement l'utilisation la plus r駱andu d'indexOf: regarder si une certaine combinaison de caract鑽es est pr駸ente. C'est le noyau du script de d騁ection de navigateur. Pour voir si le navigateur est Internet Explorer, prenez le string navigator.userAgent et voyez s'il contient 'MSIE':

if (navigator.userAgent.indexOf('MSIE') !=-1)
{
	do something for Explorer
}

Si le num駻o d'index de 'MSIE' n'est pas -1 (si 'MSIE' appara?t n'importe ou dans le string), le navigateur est Explorer.

lastIndexOf

Il y a aussi lastIndexOf qui peut renvoyer la derni鑽e occurrence d'un caract鑽e ou d'une combinaison. Il fonctionne exactement comme indexOf. Ainsi

var b = 'I am a JavaScript hacker.'
document.write(b.lastIndexOf('a'))

donne 19 parce que c'est le num駻o d段ndice du dernier 'a 'dans le string.

charAt

charAt() vous donne le caract鑽e ? une certaine position. Par exemple

var b = 'I am a JavaScript hacker.'
document.write(b.charAt(5))

donne 'a', parce que c'est le caract鑽e qui ce trouve ? la sixi鑪e position (rappelez-vous, le premier caract鑽e est 0!).

length

length vous donne la longueur d'un string.

var b = 'I am a JavaScript hacker.'
document.write(b.length)

donne 25. Notez que la longueur obtenue rajoute 1 de plus que le num駻o d'indice du dernier caract鑽e.

split

split() ne fonctionne pas avec Netscape 2 et Explorer 3.

split()est une m騁hode sp馗iale dont vous avez parfois besoin. Elle vous permet de scinder un string aux endroits ou ce trouve un certain caract鑽e. Vous devez mettre le r駸ultat dans un tableau et non pas dans une simple variable. Scindons b ? chaque espace.

var b = 'I am a JavaScript hacker.'
var temp = new Array();
temp = b.split(' ');

Maintenant le string ? 騁? scinder en 5 strings qui sont plac駸 dans le tableau temp. Les espaces sont supprim駸.

temp[0] = 'I';
temp[1] = 'am';
temp[2] = 'a';
temp[3] = 'JavaScript';
temp[4] = 'hacker.';

substring

substring est employ? pour r馗up駻er une partie d'un string. La syntaxe est substring(first_index,last_index). Ainsi par exemple

var a = 'Hello world!';
document.write(a.substring(4,8));

donne 'O wo ', du premier 'o' (indice 4) au second (d'indice 7). Notez que le 'r' (d'indice 8) ne fait pas partie de ce sous-string.

Vous pouvez 馮alement faire

var a = 'Hello world!';
document.write(a.substring(4));

Ceci donne le string complet ? partir du caract鑽e d'indice 4 : 'o world!'.

substr

substr() n'est pas utilisable sous Netscape 2 et 3, Explorer 3, Hotjava 3, Opera 3 et WebTV.

Il y a 馮alement la m騁hode substr() qui travaille l馮鑽ement diff駻emment. A la place de donner comme deuxi鑪e nombre un num駻o d'indice, on lui donne le nombre de caract鑽es. Ainsi

document.write(a.substr(4,8));

commence au caract鑽e d'indice 4 ('o') puis donne 8 caract鑽es. Ainsi le r駸ultat sera

o world!

Depuis que substr() n'est plus utilisable sur les navigateurs de version 3 je ne l'emploie jamais.

toLowerCase et toUpperCase

Enfin deux m騁hodes dont vous avez parfois besoin : toLowerCase() passe le string entier en minuscules, toUpperCase() passe le string entier en majuscule.

var b = 'I am a JavaScript hacker.'
document.write(b.toUpperCase())

donne 'I AM A JAVASCRIPT HACKER.'.

Cours JavaScript : Introduction Javascript Ajouter du Javascript D騁ection d'objet D馗larations Fontions String DOM Bool馥n DOM interm馘iaire Objets This MouseOver Imprimer D騁ection navigateur

AltStyle によって変換されたページ (->オリジナル) /