Les chaines de caractères en Javascript

Instanciation

L’instanciation se fait simplement en indiquant le texte entre simples ou doubles cotes. Plus récemment, les backquotes ont été implémentées pour répondre à différentes problématiques, voir plus bas les template strings.

// Pas possible de mettre des apostrophes.
let content = 'Salut !';

// Apostrophe possible mais pas les guillemets.
let content = "Salut l'ami !";

// Les backquotes, plus récentes, permettent tout.
let content = `Avec les backquotes, on peut utiliser l'apostrophe, ansi que les "guillemets",
et même des retours à la ligne.`;

Si la chaine est vide au départ, on ne met que les cotes. Une chaine peut être concaténée à une autre avec le +.

var str = "";
str += "Texte";

Fonctions des chaines de caractères

// Permet d'obtenir la longueur de la chaine
str.length
 
// Retourne le caractère en position n de la chaine
str[n]
 
// Retourne le caractère en position n de la chaine
str.charAt(n)
 
// Retourne le code ASCII du caractère en position n de la chaine
str.charCodeAt(n)
 
// Passe la chaine en minuscules
str.toLowerCase()
 
// Passe la chaine en majuscules
str.toUpperCase()
 
// Retourne l'indice (position) de la 1ère occurrence de val dans la chaine ou -1 si val n'est pas trouvé
str.indexOf("val")	
 
// Retourne l'indice (position) de la dernière occurrence de val dans la chaine ou -1 si val n'est pas trouvé
str.lastIndexOf("val")
 
// Retourne true ou false selon si la chaine commence par Hello
str.startsWidth("Hello")
 
// Retourne true ou false selon si la chaine commence par Hello
str.endsWidth("Bye")
 
// Décompose une chaine sur le caractère fourni et retourne un tableau
str.split(";")
 
// Récupère une portion de la chaine, partant du début et allant jusqu'au 1er espace
str.substring(0, myString.indexOf(' '));
 
// Remplacer du texte
str.replace('old', 'new');
 
// Supprimer les espaces blancs en début et fin de chaine
// Sont concernés : espace, tabulation, espace insécable, etc.) et les caractères de fin de ligne (LF, CR, etc.)
str.trim();

Template Strings : concaténation texte et variables, texte multi-lignes

Des années durant, il était nécessaire d’utiliser l’opérateur « + » pour concaténer du texte avec une variable pour obtenir un phrase finale à afficher par exemple. Depuis ES6 et l’apparition des Template Strings, il est possible d’utiliser directement des variables dans la chaine de texte sous condition que celle-ci soit entourée de backquote (ou backtick), le symbôle « ` ». En plus des variables, il est aussi possible d’afficher le résultat d’un calcul, l’attribut d’un objet, l’élément d’un tableau.

// Concaténation 
var animal = "cow";
var sound = "moo";
 
alert(`Animal ${animal} sound is ${sound}`); // Affiche "Animal cow sound is moo"
 
alert(`ten times two totally is ${ 10 * 2 }`);

L’utilisation de cette quote permet également d’écrire du texte sur plusieurs lignes, ce qui nécessitait jusque-là de concaténer chaque ligne, toujours avec l’opérateur « + ».

// Texte simple
var message = `Ceci est un exemple de message
qui peut être stocké sur plusieurs lignes
mais ne sera affiché que sur une seule.`;
 
// Texte avec variables
var animal = {
   name: 'cow',
   ilk: 'bovine',
   front: 'moo',
   back: 'milk',
}
 
alert(`
   The ${animal.name} is of the 
   ${animal.ilk} ilk, 
   one end is for the ${animal.front}, 
   the other for the ${animal.back}
`);
 
/* Affichera : 
  The cow is of the 
  bovine ilk, 
  one end is for the moo, 
  the other for the milk
*/