48 votes

jQuery Title Case

Existe-t-il un moyen intégré à jQuery pour "mettre en majuscule" une chaîne de caractères ? Ainsi, si l'on donne quelque chose comme "bob smith", cela devient "Bob Smith" ?

0voto

SajithG Points 120
<html>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script>
$(document).ready(function () {

   $('.clsToTitleCase').keyup(function () { 

        this.value = this.value.replace(/(?:^|\s)\w/g, function (match) {
           return match.toUpperCase();
        })

    });
})
</script>

<body>

<input class='clsToTitleCase' type='text'>
</body>
</html>

0voto

Pritam Jyoti Ray Points 219

Vous pouvez aussi utiliser une méthode comme celle-ci -

toTitleCase: function (str) {
        return str.replace(/\w\S*/g, function (txt) { return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase(); });
    }

0voto

Cheryl Miller Points 46

J'ai légèrement modifié le code de rBizzle. Je ne veux pas m'embêter avec les McClouds et les McIntoshs du monde (j'écoute de la musique celtique en ce moment !), j'ai donc ajouté une condition pour ne modifier que si TOUTES LES MAJUSCULES ou TOUTES les minuscules :

function isUpperCase(str) {
    return str === str.toUpperCase();
}

function isLowerCase(str) {
    return str === str.toLowerCase();
}

function toProperCase(str) {
    //only mess with it if it is all lower or upper case letters
    if (isUpperCase(str) || isLowerCase(str)){
        var lcStr = str.toLowerCase();
        return lcStr.replace(/(?:^|\s)\w/g, function(match) {
            return match.toUpperCase();
        }); 
    } else {
        return str;
    }
}

J'essaie surtout de faire face aux utilisateurs QUI INSISTENT POUR CRIER LEUR ENTRÉE DE DONNÉES ! C'est une chose pour les données internes, mais quand les clients vont les voir, je dois fixer des limites.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X