--- title: Gérer du texte — les chaînes de caractères en JavaScript slug: Learn/JavaScript/First_steps/Strings tags: - Article - Attacher - Codage - Débutant - Guide - Guillemets - JavaScript - chaînes - concatenation translation_of: Learn/JavaScript/First_steps/Strings ---
Concentrons-nous maintenant sur les chaînes de caractères - c'est le nom donné à un segment de texte en programmation. Dans cet article, nous aborderons les aspects les plus communs des chaînes de caractères que vous devez vraiment connaître quand vous apprenez JavaScript, comme créer une chaîne de caractères, échapper des guillemets dans une chaîne ou encore concaténer des chaînes.
| Prérequis : | Connaissance de base en informatique, une compréhension basique de HTML et CSS et savoir ce qu'est JavaScript. |
|---|---|
| Objectif : | Devenir familier avec les fondamentaux pour manipuler les chaînes de caractères en JavaScript. |
Les mots ont beaucoup d'importance pour les humains — ils occupent une large part dans nos façons de communiquer. Comme le Web est un medium essentiellement fondé sur du texte conçu pour permettre aux hommes de communiquer et partager de l'information, il est utile de contrôler les mots qui y sont publiés. {{glossary("HTML")}} donne structure et sens au texte, {{glossary("CSS")}} en gère le style et JavaScript comporte une série de fonctionnalités pour manipuler les chaînes de caractères, créer des messages d'accueil personnalisés, afficher la bonne étiquette quand nécessaire, trier des termes dans l'ordre voulu, et bien d'autres choses encore.
À peu près tous les programmes que nous vous avons montrés jusqu'ici ont impliqué des manipulations de chaînes de caractères.
À première vue, les chaînes se traitent de la même manière que les nombres ; mais si vous approfondissez la chose, vous commencerez à percevoir des différences notables. Entrons sur la console quelques lignes simples pour nous familiariser avec la chose. À propos de la console, nous en avons placé une ci‑dessous (vous pouvez l'ouvrir dans un onglet ou une fenêtre séparée, ou bien utiliser celle de l'explorateur, comme vous préférez).
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>JavaScript console</title>
<style>
* {
box-sizing: border-box;
}
html {
background-color: #0C323D;
color: #809089;
font-family: monospace;
}
body {
max-width: 700px;
}
p {
margin: 0;
width: 1%;
padding: 0 1%;
font-size: 16px;
line-height: 1.5;
float: left;
}
.input p {
margin-right: 1%;
}
.output p {
width: 100%;
}
.input input {
width: 96%;
float: left;
border: none;
font-size: 16px;
line-height: 1.5;
font-family: monospace;
padding: 0;
background: #0C323D;
color: #809089;
}
div {
clear: both;
}
</style>
</head>
<body>
</body>
<script>
let geval = eval;
function createInput() {
let inputDiv = document.createElement('div');
let inputPara = document.createElement('p');
let inputForm = document.createElement('input');
inputDiv.setAttribute('class','input');
inputPara.textContent = '>';
inputDiv.appendChild(inputPara);
inputDiv.appendChild(inputForm);
document.body.appendChild(inputDiv);
if(document.querySelectorAll('div').length > 1) {
inputForm.focus();
}
inputForm.addEventListener('change', executeCode);
}
function executeCode(e) {
try {
let result = geval(e.target.value);
} catch(e) {
let result = 'error — ' + e.message;
}
let outputDiv = document.createElement('div');
let outputPara = document.createElement('p');
outputDiv.setAttribute('class','output');
outputPara.textContent = 'Result: ' + result;
outputDiv.appendChild(outputPara);
document.body.appendChild(outputDiv);
e.target.disabled = true;
e.target.parentNode.style.opacity = '0.5';
createInput()
}
createInput();
</script>
</html>
{{ EmbedLiveSample('Hidden_code', '100%', 300) }}
let string = 'La révolution ne sera pas télévisée.'; string;Comme nous l'avons fait avec les nombres, nous déclarons une variable, l'initialisons avec une valeur de chaîne, puis renvoyons la valeur. La seule différence ici est que lorsque nous écrivons une chaîne, nous la mettons entre guillemets.
let badString = Voici un test; let badString = 'Voici un test; let badString = Voici un test';Ces lignes de code ne fonctionnent pas parce que toute chaîne de texte qui n'est pas écrite entre guillemets est considérée comme un nom de variable, un nom de propriété, un mot réservé ou quelque chose de semblable. Quand l'interpréteur ne parvient pas à trouver la déclaration de ladite variable, une erreur est déclenchée (par ex. « missing ; before statement »). Si l'interpréteur voit le début d'une chaîne mais ne trouve pas sa fin, comme dans la ligne 2, il se plaint en émettant une erreur (avec « unterminated string literal »). Si votre programme produit de telles erreurs, revoyez‑le et vérifiez qu'aucun guillemet ne manque.
string a été préalablement définie — essayez maintenant :
let badString = string; badString;
badString est maintenant défini avec la même valeur que string.let sgl = 'Guillemet simple.'; let dbl = "Guillemets doubles."; sgl; dbl;
let badQuotes = 'Quoi sur Terre ?";
let sglDbl = 'Mangeriez‑vous un "souper de poisson"?'; let dblSgl = "J'ai le blues."; sglDbl; dblSgl;
let bigmouth = 'Je n'ai pas eu droit à prendre place...';Voilà qui nous amène naturellement au prochain sujet.
Pour corriger l'erreur dans notre ligne de code précédente, il nous suffit d'échapper au problème que pose le guillemet. « Échapper des caractères » signifie que nous les marquons de manière à ce qu'ils soient reconnus comme partie intégrante du texte, et non pas comme symbole de code. Dans JavaScript, nous le faisons en mettant une barre oblique inverse juste avant le caractère. Essayons :
let bigmouth = 'Je n\'ai pas eu droit à prendre place...'; bigmouth;
Cela fonctionne à la perfection. Vous pouvez échapper d'autres caractères de la même manière, par ex. \", et il y a certains codes spéciaux à côté. Voyez Notations d'échappement pour plus de détails.
let one = 'Hello, '; let two = 'comment allez‑vous ?'; let joined = one + two; joined;Il en résulte que la variable nommée
joined contient la valeur "Hello, comment allez‑vous ?".+ entre chacune. Essayez ceci :
let multiple = one + one + one + one + two; multiple;
let response = one + 'Je vais bien — et vous ' + two; response;
Note : Quand vous entrez une chaîne dans votre code, entre guillemets simples ou doubles, on l'appelle chaîne littérale.
Examinons une concaténation dans une action — voici un exemple tiré en amont de ce cours :
<button>Pressez‑moi</button>
let button = document.querySelector('button');
button.onclick = function() {
let name = prompt('Quel est votre nom ?');
alert('Hello ' + name + ', sympa de vous voir !');
}
{{ EmbedLiveSample('Concatenation_in_context', '100%', 50) }}
Ici nous utilisons en ligne 4 la fonction {{domxref("Window.prompt()", "Window.prompt()")}}, qui demande à l'utilisateur de répondre à une question par l'intermédiaire d'une boîte de dialogue, puis qui stocke le texte entré dans une variable donnée — dans ce cas name. En ligne 5, nous nous servons de la fonction {{domxref("Window.alert()", "Window.alert()")}} pour afficher un dialogue contenant une chaîne assemblée à partir de deux chaînes littérales et de la variable name, par concaténation.
'Front ' + 242;Vous vous attendriez à déclencher une erreur, mais cela fonctionne parfaitement. Essayer de représenter une chaîne comme un nombre n'a vraiment aucun sens, mais représenter un nombre par une chaîne en a, donc le navigateur convertit adroitement le nombre en chaîne et concatène les deux chaînes.
typeof pour vérifier si la variable est un nombre ou une chaîne):
let myDate = '19' + '67'; typeof myDate;
let myString = '123'; let myNum = Number(myString); typeof myNum;
toString() qui le convertit en chaîne équivalente. Essayez :
let myNum = 123; let myString = myNum.toString(); typeof myString;
number, donc vous pouvez le faire passer par la méthode Number() pour gérer cela. C'est exactement ce que nous avons fait dans le jeu Devinez un nombre, à la ligne 63.Voilà donc les bases de la manipulation des chaînes de caractères en JavaScript. Dans le prochain article, nous allons bâtir sur ces éléments en examinant certaines méthodes intégrées disponibles pour les chaînes de caractères dans JavaScript et en les utilisant pour mettre les chaînes de caractères dans la forme voulue.
{{PreviousMenuNext("Learn/JavaScript/First_steps/Math", "Learn/JavaScript/First_steps/Useful_string_methods", "Learn/JavaScript/First_steps")}}