Comment mettre en majuscule la première lettre de tous les mots en JavaScript ?

Réponses rédigées par Antoine
Dernière mise à jour : 2021-08-05 12:52:21
Thèmes : majuscule - javascript
Question

Bonjour, je veux mettre en majuscule la première lettre de tous les mots d'une phrase, avec JavaScript. Merci.

Réponse

Pour mettre en majuscule la première lettre de tous les mots en JavaScript, vous devez préalablement mettre la phrase en minuscule, au cas où certaines lettres ou mots soient déjà en majuscule.

Pour mettre en minuscule et en majuscule on utilise respectivement les méthodes toLowerCase() et toUpperCase().

Ensuite vous pouvez utiliser une expression régulière pour mettre en majuscule la première lettre de chaque mot :

/(^\w{1})|(\s+\w{1})/g

Voici ce que font les différents segments de cette expression régulière :

  • (^\w{1}) regroupe plusieurs jetons et crée un groupe de capture pour extraire une sous chaîne.
  • ^ signifie début, cela correspond au début de la chaîne ou au début d'une ligne.
  • \w signifie word (mot en anglais), cela correspond à n'importe quel caractère composant un mot.
  • (1) identifie la première occurrence du jeton précédent : \w.
  • | le pipe signifie ou.
  • (\s+\w{1}) regroupe de nouveau plusieurs jetons et crée un groupe de capture pour extraire une sous chaîne.
  • \s permet d'identifier les espaces.
    • + identifie la première occurrence, ou plus, du jeton précédent : \s.

On utilise ensuite ma méthode replace() pour remplacer la chaine de caractères avec celle dont la première lettre de tous les mots est en majuscule :

<!DOCTYPE html> 
<html>
<head>
<meta charset="utf-8">
<title>Comment mettre en majuscule la première lettre de tous les mots en JavaScript ?</title>
</head>
<body> 
<script>
var phrase = "mettre en majuscule la première LETTRE de tous les mots";
var minuscule = phrase.toLowerCase();
var mot_majuscule = minuscule.replace(/(^\w{1})|(\s+\w{1})/g, lettre => lettre.toUpperCase());
alert(mot_majuscule);
</script>
</body>
</html>