Capitalize a string (até mesmo nomes latinos)

Como você deve saber, em Javascript podemos usar uma função de retorno de chamada que define a string de substituição em String.replace, como aparece em https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/Replace .

Então, uma dica para vocês: como prototipar capitalize e capitalizeName:

String.prototype.capitalize = function (){
return this.toLowerCase().replace( /(^|s)([a-z])/g , function(_m, _p1, _p2){ return _p1+_p2.toUpperCase();});
};

O _m significa correspondência, _pN significa “cada um dos grupos corresponde à regex” (os valores entre parênteses).

Agora que podemos capitalizar strings, o truque é tratar as preposições de nomes latinos, como “do, da, dos, das, de” – o que é muito comum no Brasil, Itália, Espanha, etc.

String.prototype.capitalizeName = function (){
return this.capitalize().replace( /(sd(a|e|i|o|u)?s?s?)/gi , function(_m, _p1){ return _p1.toLowerCase(); });
};

Experimente no console Javascript do seu navegador!

[]

Bruno J. Araujo

  • Estou trabalhando em padrões de nomes como “d’Água”: P