Explore les méthodes JavaScript pour rechercher, extraire, transformer et manipuler des données textuelles.
Les chaînes de caractères en JavaScript sont immuables — une fois créée, une chaîne de caractères ne peut pas être modifiée. Toute méthode qui semble modifier une chaîne retourne en réalité une toute nouvelle chaîne.
Tu peux créer des chaînes en utilisant des guillemets simples, des guillemets doubles, ou des backticks (littéraux de gabarit) :
const single = 'Hello';
const double = "Hello";
const template = `Hello, ${name}!`; // template literal with interpolationChaque chaîne a une propriété length :
const greeting = 'Hello';
console.log(greeting.length); // 5Tu peux accéder aux caractères individuels en utilisant la notation entre crochets ou la méthode charAt() :
const word = 'JavaScript';
console.log(word[0]); // 'J'
console.log(word.charAt(4)); // 'S'
console.log(word[word.length - 1]); // 't' (last character)Les chaînes sont également itérables, ce qui signifie que tu peux les parcourir avec une boucle for...of :
for (const char of 'Hello') {
console.log(char); // 'H', 'e', 'l', 'l', 'o'
}JavaScript fournit plusieurs méthodes pour trouver du contenu dans une chaîne de caractères.
indexOf(substring) retourne l'index de la première occurrence, ou -1 si elle n'est pas trouvée :
const text = 'Hello, World!';
console.log(text.indexOf('World')); // 7
console.log(text.indexOf('xyz')); // -1lastIndexOf(substring) fonctionne de la même manière mais recherche depuis la fin :
const path = 'folder/subfolder/file.txt';
console.log(path.lastIndexOf('/')); // 16includes(substring) retourne un booléen — plus simple quand tu as juste besoin de savoir si la sous-chaîne existe :
console.log('JavaScript'.includes('Script')); // true
console.log('JavaScript'.includes('script')); // false (case-sensitive)startsWith() et endsWith() vérifient le début ou la fin d'une chaîne :
const filename = 'report.pdf';
console.log(filename.startsWith('report')); // true
console.log(filename.endsWith('.pdf')); // truesearch(regex) fonctionne comme indexOf mais accepte une expression régulière :
const text = 'Hello World 123';
console.log(text.search(/\d+/)); // 12 (index where digits start)Extraire des sous-chaînes :
slice(start, end) extrait une section d'une chaîne. L'index end est exclusif. Les indices négatifs comptent depuis la fin :
const str = 'JavaScript';
console.log(str.slice(0, 4)); // 'Java'
console.log(str.slice(4)); // 'Script'
console.log(str.slice(-6)); // 'Script'substring(start, end) est similaire à slice mais ne supporte pas les indices négatifs.
Changer la casse :
console.log('hello'.toUpperCase()); // 'HELLO'
console.log('HELLO'.toLowerCase()); // 'hello'Supprimer les espaces :
const padded = ' Hello ';
console.log(padded.trim()); // 'Hello'
console.log(padded.trimStart()); // 'Hello '
console.log(padded.trimEnd()); // ' Hello'Remplir des chaînes :
console.log('5'.padStart(3, '0')); // '005'
console.log('Hi'.padEnd(10, '.')); // 'Hi........'Répéter :
console.log('ha'.repeat(3)); // 'hahaha'split(separator) divise une chaîne en un tableau de sous-chaînes :
const csv = 'apple,banana,cherry';
const fruits = csv.split(',');
console.log(fruits); // ['apple', 'banana', 'cherry']
const words = 'Hello World'.split(' ');
console.log(words); // ['Hello', 'World']Array.join(separator) est l'inverse — il combine les éléments d'un tableau en une chaîne :
const parts = ['2024', '01', '15'];
console.log(parts.join('-')); // '2024-01-15'replace(search, replacement) remplace la première occurrence :
const text = 'Hello World World';
console.log(text.replace('World', 'JS')); // 'Hello JS World'replaceAll(search, replacement) remplace toutes les occurrences :
console.log(text.replaceAll('World', 'JS')); // 'Hello JS JS'Ces méthodes sont fréquemment enchaînées pour des transformations de texte puissantes :
const input = ' hello, world! ';
const result = input.trim().toUpperCase().replace('WORLD', 'JS');
console.log(result); // 'HELLO, JS!'<div id="output"></div>
<script>
const original = " JavaScript is Awesome! ";
// Trimming and transforming
const trimmed = original.trim();
const upper = trimmed.toUpperCase();
const replaced = upper.replace('AWESOME', 'POWERFUL');
// Searching
const hasJS = trimmed.includes('JavaScript');
const position = trimmed.indexOf('is');
// Splitting and joining
const words = trimmed.split(' ');
const reversed = words.reverse().join(' ');
const output = document.getElementById('output');
output.innerHTML = `
<p>Original: "${original}"</p>
<p>Trimmed: "${trimmed}"</p>
<p>Uppercase: "${upper}"</p>
<p>Replaced: "${replaced}"</p>
<p>Includes "JavaScript": ${hasJS}</p>
<p>Index of "is": ${position}</p>
<p>Words reversed: "${reversed}"</p>
`;
</script>Que retourne 'hello'.indexOf('z') ?