La casse et les caractères

Parent Previous Next



La casse et les caractères



toLowerCase() et toUpperCase()

toLowerCase() et toUpperCase() permettent respectivement de convertir une chaîne en minuscules et en majuscules. Elles sont pratiques pour réaliser différents tests ou pour uniformiser une chaîne de caractères. Leur utilisation est simple :

var myString = 'tim berners-lee';

 

myString = myString.toUpperCase(); // Retourne : « TIM BERNERS-LEE »


Accéder aux caractères

La méthode charAt() permet de récupérer un caractère en fonction de sa position dans la chaîne de caractères. La méthode reçoit en paramètre la position du caractère :

var myString = 'Pauline';

 

var first = myString.charAt(0);                   // P

var last  = myString.charAt(myString.length - 1); // e


En fait, les chaînes de caractères peuvent être imaginées comme des tableaux, à la différence qu'il n'est pas possible d'accéder aux caractères en utilisant les crochets : à la place, il faut utiliser charAt().


Certains navigateurs permettent toutefois d'accéder aux caractères d'une chaîne comme s'il s'agissait d'un tableau, c'est-à-dire comme ceci : myString[0]. Ce n'est pas standard, donc il est fortement conseillé d'utiliser myString.charAt(0).


Obtenir le caractère en ASCII


La méthode charCodeAt() fonctionne comme charAt() à la différence que ce n'est pas le caractère qui est retourné mais le code ASCII du caractère.


Créer une chaîne de caractères depuis une chaîne ASCII


fromCharCode() permet de faire plus ou moins l'inverse de charCodeAt() : instancier une nouvelle chaîne de caractères à partir d'une chaîne ASCII, dont chaque code est séparé par une virgule. Son fonctionnement est particulier puisqu'il est nécessaire d'utiliser l'objet String lui-même :

var myString = String.fromCharCode(74, 97, 118, 97, 83, 99, 114, 105, 112, 116); // le mot JavaScript en ASCII

 

alert(myString); // Affiche : « JavaScript »


Mais quel est l'intérêt d'utiliser les codes ASCII ?


Ce n'est pas très fréquent, mais cela peut être utile dans un cas bien particulier : détecter les touches du clavier. Admettons qu'il faille savoir quelle touche du clavier à été pressée par l'utilisateur. Pour cela, on utilise la propriété keyCode de l'objet Event :

<textarea onkeyup="listenKey(event)"></textarea>


La fonction listenKey() peut être écrite comme suit :

function listenKey(event) {

   

    var key = event.keyCode;

 

    alert('La touche numéro ' + key + ' a été pressée. Le caractère ' + String.fromCharCode(key) + ' a été inséré.');

}



event.keyCode retourne le code ASCII qui correspond au caractère inséré par la touche. Pour la touche J, le code ASCII est 74 par exemple.


Cela fonctionne bien pour les touches de caractères, mais ça ne fonctionne pas pour les touches de fonction comme DeleteEnterShiftCaps, etc. Ces touches retournent bien un code ASCII, mais celui-ci ne peut être converti en un caractère lisible par un humain. Par exemple, le keyCodede la barre d'espace est 32. Donc pour savoir si l'utilisateur a pressé ladite barre, il suffira de tester si le keyCode vaut 32 et d'agir en conséquence.


Supprimer les espaces avec trim()


trim() est une petite exception, car c'est une méthode récente : elle n'était pas présente lors des débuts du Javascript et a été ajoutée en 2009 avec la sortie de la version 1.8.1 du Javascript. trim() n'est, de ce fait, pas supportée par les navigateurs anciens comme Internet Explorer 7, Firefox 3, etc.


trim() sert à supprimer les espaces avant et après une chaîne de caractères. C'est particulièrement utile quand on récupère des données saisies dans une zone de texte, car l'utilisateur est susceptible d'avoir laissé des espaces avant et après son texte, surtout s'il a fait un copier/coller.


Cette méthode étant relativement jeune, elle n'est pas disponible dans les anciens navigateurs et n’apparaît dans Internet Explorer qu'à partir de la version 8.


Créé avec HelpNDoc Personal Edition: Créer des aides HTML, DOC, PDF et des manuels depuis une même source

Site à deux balles