Majuscule 1ere lettre Javascript
Résolu/Fermé
A voir également:
- Javascript majuscule première lettre
- Excel première lettre majuscule ✓ - Forum Excel
- A majuscule - Guide
- Premiere pro gratuit - Télécharger - Montage & Édition
- Dans le texte, un seul mot a réellement été écrit en majuscule. quel est ce mot ? ✓ - Forum Word
- Telecharger javascript - Télécharger - Langages
4 réponses
Mihawk
Messages postés
4311
Date d'inscription
mercredi 29 mars 2006
Statut
Contributeur
Dernière intervention
6 janvier 2015
843
30 août 2012 à 11:24
30 août 2012 à 11:24
Allez voilà une solution qui fonctionne, encapsulée dans une méthode.
La méthode prend 2 paramètres :
1/ un booléen qui vaut true si tu veux que la première lettre du texte soit également mise en majuscule ; false sinon.
2/ le texte à convertir
La méthode prend 2 paramètres :
1/ un booléen qui vaut true si tu veux que la première lettre du texte soit également mise en majuscule ; false sinon.
2/ le texte à convertir
<script type="text/javascript">
function setMajToAllWords(toFirstWord, texte){
var newText = (toFirstWord == true) ? texte.charAt(0).toUpperCase() : texte.charAt(0);
for (var i=0 ; i<texte.length-1 ; i++){
if (texte.charAt(i).match(/\s/) && texte.charAt(i+1).match(/[a-z]/)){
newText += texte.charAt(i+1).toUpperCase();
} else {
newText += texte.charAt(i+1);
}
}
return newText;
}
// Exemples
alert (setMajToAllWords(false, "bonjour a tous")); // Affiche "bonjour A Tous"
alert (setMajToAllWords(true, "bonjour a tous")); // Affiche "Bonjour A Tous"
</script>
Salut,
Pour ceux qui cherchent la solution :
Pour ceux qui cherchent la solution :
texte = texte.replace(/\s([a-z])/g, function($1) {return $1.toUpperCase()});
Mihawk
Messages postés
4311
Date d'inscription
mercredi 29 mars 2006
Statut
Contributeur
Dernière intervention
6 janvier 2015
843
30 août 2012 à 10:57
30 août 2012 à 10:57
Hello,
On va faire plus simple avec les expression régulières...
Je ne l'ai pas vérifié, à tester donc !
On va faire plus simple avec les expression régulières...
var texte = "bonjour a tous" texte = texte.replace(/\s([a-z])/, $1.toUpperCase());
Je ne l'ai pas vérifié, à tester donc !
Mihawk
Messages postés
4311
Date d'inscription
mercredi 29 mars 2006
Statut
Contributeur
Dernière intervention
6 janvier 2015
843
30 août 2012 à 11:01
30 août 2012 à 11:01
J'ai testé, ça ne tourne pas.
Je cherche une solution.
Je cherche une solution.
Mihawk
Messages postés
4311
Date d'inscription
mercredi 29 mars 2006
Statut
Contributeur
Dernière intervention
6 janvier 2015
843
Modifié par Mihawk le 30/08/2012 à 11:10
Modifié par Mihawk le 30/08/2012 à 11:10
Bon bah zut j'y arrive pas... J'ai essayé ça :
Je pensais vraiment que ça marcherait mais 'faut croire que le toUpperCase() dans un replace il n'aime pas :-/
[EDIT] : en fait il aime bien, mais pas avec le $1 c'est assez étrange !
Mihawk
"The Weapon of Choice"
<script type="text/javascript"> var texte = "bonjour a tous"; texte = texte.replace(/\s([a-z])/g, " $1".toUpperCase()); alert(texte); </script>
Je pensais vraiment que ça marcherait mais 'faut croire que le toUpperCase() dans un replace il n'aime pas :-/
[EDIT] : en fait il aime bien, mais pas avec le $1 c'est assez étrange !
Mihawk
"The Weapon of Choice"
30 août 2012 à 11:43
merci beaucoup Mihawk ;)
30 août 2012 à 11:44
Mets donc un +1 à la réponse histoire qu'elle s'affiche en évidence.