Bonjour j'ai un petit script qui me permet de passer en "nom propre" un nom
rentré dans un champ`
lorsque'on rentre "claude" ou "CLAUDE" cela me donne "Claude"
var m=pif.charAt(0).toUpperCase() + pif.substring(1).toLowerCase();
En revanche si l'on rentre "jean claude" ou "jean-claude" cela ne me met en
majuscule que la premiere lettre et, vous vous en doutez, j'aimerais avoir
"Jean Claude" ou "Jean-Claude" voire même un "-" remplacant l'espace de
"Jean Claude"
N'etant pas dev en javascript je sollicite votre aide bienveillante
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Olivier Miakinen
Bonjour j'ai un petit script qui me permet de passer en "nom propre" un nom rentré dans un champ` lorsque'on rentre "claude" ou "CLAUDE" cela me donne "Claude"
var m=pif.charAt(0).toUpperCase() + pif.substring(1).toLowerCase();
En revanche si l'on rentre "jean claude" ou "jean-claude" cela ne me met en majuscule que la premiere lettre et, vous vous en doutez, j'aimerais avoir "Jean Claude" ou "Jean-Claude" voire même un "-" remplacant l'espace de "Jean Claude"
N'etant pas dev en javascript je sollicite votre aide bienveillante
Connaissant le nom de la fonction qui fait ça en PHP, ucwords, je n'ai pas eu trop de mal à trouver grâce à Google : http://www.google.fr/search?q=ucwords+javascript
Par exemple ici : http://www.thescripts.com/forum/thread92239.html <cit.> String.prototype.ucwords = function(){ return this.replace(/bw/gi, function(c,i,s) { return c.toUpperCase(); }); } </cit.>
Tu l'utiliseras après comme ceci : var m = pif.toLowerCase().ucwords();
Bonjour j'ai un petit script qui me permet de passer en "nom propre" un nom
rentré dans un champ`
lorsque'on rentre "claude" ou "CLAUDE" cela me donne "Claude"
var m=pif.charAt(0).toUpperCase() + pif.substring(1).toLowerCase();
En revanche si l'on rentre "jean claude" ou "jean-claude" cela ne me met en
majuscule que la premiere lettre et, vous vous en doutez, j'aimerais avoir
"Jean Claude" ou "Jean-Claude" voire même un "-" remplacant l'espace de
"Jean Claude"
N'etant pas dev en javascript je sollicite votre aide bienveillante
Connaissant le nom de la fonction qui fait ça en PHP, ucwords, je n'ai
pas eu trop de mal à trouver grâce à Google :
http://www.google.fr/search?q=ucwords+javascript
Par exemple ici :
http://www.thescripts.com/forum/thread92239.html
<cit.>
String.prototype.ucwords = function(){
return this.replace(/bw/gi, function(c,i,s) { return
c.toUpperCase(); });
}
</cit.>
Tu l'utiliseras après comme ceci :
var m = pif.toLowerCase().ucwords();
Bonjour j'ai un petit script qui me permet de passer en "nom propre" un nom rentré dans un champ` lorsque'on rentre "claude" ou "CLAUDE" cela me donne "Claude"
var m=pif.charAt(0).toUpperCase() + pif.substring(1).toLowerCase();
En revanche si l'on rentre "jean claude" ou "jean-claude" cela ne me met en majuscule que la premiere lettre et, vous vous en doutez, j'aimerais avoir "Jean Claude" ou "Jean-Claude" voire même un "-" remplacant l'espace de "Jean Claude"
N'etant pas dev en javascript je sollicite votre aide bienveillante
Connaissant le nom de la fonction qui fait ça en PHP, ucwords, je n'ai pas eu trop de mal à trouver grâce à Google : http://www.google.fr/search?q=ucwords+javascript
Par exemple ici : http://www.thescripts.com/forum/thread92239.html <cit.> String.prototype.ucwords = function(){ return this.replace(/bw/gi, function(c,i,s) { return c.toUpperCase(); }); } </cit.>
Tu l'utiliseras après comme ceci : var m = pif.toLowerCase().ucwords();
Olivier Miakinen
Le 12/02/2008 12:03, je répondais à Serge Hipontoise :
[...] j'aimerais avoir "Jean Claude" ou "Jean-Claude" voire même un "-" remplacant l'espace de "Jean Claude"
String.prototype.ucwords = function(){ return this.replace(/bw/gi, function(c,i,s) { return c.toUpperCase(); }); } var m = pif.toLowerCase().ucwords();
Attention cependant, je ne sais pas comment les fonctions JavaScript et les b et w réagissent aux lettres accentuées. Il faudrait faire gaffe que « élodie » donne « Élodie » plutôt que « éLodie », que « DAPHNÉ » donne « Daphné » plutôt que « DaphnÉ », et que « Bénédicte » ne donne pas « BéNéDicte ».
Le 12/02/2008 12:03, je répondais à Serge Hipontoise :
[...] j'aimerais avoir "Jean Claude" ou "Jean-Claude" voire même un
"-" remplacant l'espace de "Jean Claude"
String.prototype.ucwords = function(){
return this.replace(/bw/gi, function(c,i,s) { return
c.toUpperCase(); });
}
var m = pif.toLowerCase().ucwords();
Attention cependant, je ne sais pas comment les fonctions JavaScript et
les b et w réagissent aux lettres accentuées. Il faudrait faire gaffe
que « élodie » donne « Élodie » plutôt que « éLodie », que « DAPHNÉ »
donne « Daphné » plutôt que « DaphnÉ », et que « Bénédicte » ne donne
pas « BéNéDicte ».
Le 12/02/2008 12:03, je répondais à Serge Hipontoise :
[...] j'aimerais avoir "Jean Claude" ou "Jean-Claude" voire même un "-" remplacant l'espace de "Jean Claude"
String.prototype.ucwords = function(){ return this.replace(/bw/gi, function(c,i,s) { return c.toUpperCase(); }); } var m = pif.toLowerCase().ucwords();
Attention cependant, je ne sais pas comment les fonctions JavaScript et les b et w réagissent aux lettres accentuées. Il faudrait faire gaffe que « élodie » donne « Élodie » plutôt que « éLodie », que « DAPHNÉ » donne « Daphné » plutôt que « DaphnÉ », et que « Bénédicte » ne donne pas « BéNéDicte ».
Olivier Miakinen
Et zut, je tape trop vite sur Entrée avant d'avoir répondu à tout.
[...] j'aimerais avoir "Jean Claude" ou "Jean-Claude" voire même un "-" remplacant l'espace de "Jean Claude"
En l'occurrence, je crois qu'il vaut mieux s'abstenir. Je connais un « Jean Charles » qui tient à l'écriture sans trait d'union, car (dit-il) il s'agit des deux prénoms Jean et Charles plutôt que du prénom composé Jean-Charles.
Et zut, je tape trop vite sur Entrée avant d'avoir répondu à tout.
[...] j'aimerais avoir "Jean Claude" ou "Jean-Claude" voire même
un "-" remplacant l'espace de "Jean Claude"
En l'occurrence, je crois qu'il vaut mieux s'abstenir. Je connais un
« Jean Charles » qui tient à l'écriture sans trait d'union, car (dit-il)
il s'agit des deux prénoms Jean et Charles plutôt que du prénom composé
Jean-Charles.
Et zut, je tape trop vite sur Entrée avant d'avoir répondu à tout.
[...] j'aimerais avoir "Jean Claude" ou "Jean-Claude" voire même un "-" remplacant l'espace de "Jean Claude"
En l'occurrence, je crois qu'il vaut mieux s'abstenir. Je connais un « Jean Charles » qui tient à l'écriture sans trait d'union, car (dit-il) il s'agit des deux prénoms Jean et Charles plutôt que du prénom composé Jean-Charles.
SAM
Bonjour j'ai un petit script qui me permet de passer en "nom propre" un nom rentré dans un champ` lorsque'on rentre "claude" ou "CLAUDE" cela me donne "Claude"
var m=pif.charAt(0).toUpperCase() + pif.substring(1).toLowerCase();
En revanche si l'on rentre "jean claude" ou "jean-claude" cela ne me met en majuscule que la premiere lettre et, vous vous en doutez, j'aimerais avoir "Jean Claude" ou "Jean-Claude" voire même un "-" remplacant l'espace de "Jean Claude"
N'etant pas dev en javascript je sollicite votre aide bienveillante
Et les CSS ? à quoi servent les CSS ? ;-)
<input style="text-transform: capitalize">
Sinon, un peu laborieux (et qui n'a pas de blème avec les accents dans mon Fx) :
Les blancs après le nom n'ont pas été résolus, non plus que les doubles espaces. (les fôtes de frappe non plus)
-- sm
Bonjour j'ai un petit script qui me permet de passer en "nom propre" un nom
rentré dans un champ`
lorsque'on rentre "claude" ou "CLAUDE" cela me donne "Claude"
var m=pif.charAt(0).toUpperCase() + pif.substring(1).toLowerCase();
En revanche si l'on rentre "jean claude" ou "jean-claude" cela ne me met en
majuscule que la premiere lettre et, vous vous en doutez, j'aimerais avoir
"Jean Claude" ou "Jean-Claude" voire même un "-" remplacant l'espace de
"Jean Claude"
N'etant pas dev en javascript je sollicite votre aide bienveillante
Et les CSS ? à quoi servent les CSS ? ;-)
<input style="text-transform: capitalize">
Sinon, un peu laborieux
(et qui n'a pas de blème avec les accents dans mon Fx) :
Bonjour j'ai un petit script qui me permet de passer en "nom propre" un nom rentré dans un champ` lorsque'on rentre "claude" ou "CLAUDE" cela me donne "Claude"
var m=pif.charAt(0).toUpperCase() + pif.substring(1).toLowerCase();
En revanche si l'on rentre "jean claude" ou "jean-claude" cela ne me met en majuscule que la premiere lettre et, vous vous en doutez, j'aimerais avoir "Jean Claude" ou "Jean-Claude" voire même un "-" remplacant l'espace de "Jean Claude"
N'etant pas dev en javascript je sollicite votre aide bienveillante
Et les CSS ? à quoi servent les CSS ? ;-)
<input style="text-transform: capitalize">
Sinon, un peu laborieux (et qui n'a pas de blème avec les accents dans mon Fx) :
Les blancs après le nom n'ont pas été résolus, non plus que les doubles espaces. (les fôtes de frappe non plus)
-- sm
Serge Hipontoise
Hello un grand merci a tous les deux pour vos reponses
Les espaces devant et derrieres sont deja gérés
Merci SAM pour ton code qui marche amerveille !
Ceci dit... Je note la remarque d'Olivier et je me demandais si je pouvais abuser, SAM, en te demandant ce que ca donnerait en respectant l'espace du milieu s'il est présent ? C'est a dire si la sépâration est un tiret on la garde et si c'est un espace aussi, mais on passe bien tous les prénoms en majuscules
Un grand merci d'avance
Serge
Hello un grand merci a tous les deux pour vos reponses
Les espaces devant et derrieres sont deja gérés
Merci SAM pour ton code qui marche amerveille !
Ceci dit... Je note la remarque d'Olivier et je me demandais si je pouvais
abuser, SAM, en te demandant ce que ca donnerait en respectant l'espace du
milieu s'il est présent ? C'est a dire si la sépâration est un tiret on la
garde et si c'est un espace aussi, mais on passe bien tous les prénoms en
majuscules
Hello un grand merci a tous les deux pour vos reponses
Les espaces devant et derrieres sont deja gérés
Merci SAM pour ton code qui marche amerveille !
Ceci dit... Je note la remarque d'Olivier et je me demandais si je pouvais abuser, SAM, en te demandant ce que ca donnerait en respectant l'espace du milieu s'il est présent ? C'est a dire si la sépâration est un tiret on la garde et si c'est un espace aussi, mais on passe bien tous les prénoms en majuscules
Un grand merci d'avance
Serge
SAM
Ceci dit... Je note la remarque d'Olivier et je me demandais si je pouvais abuser, SAM, en te demandant ce que ca donnerait en respectant l'espace du milieu s'il est présent ? C'est a dire si la sépâration est un tiret on la garde et si c'est un espace aussi, mais on passe bien tous les prénoms en majuscules
Je ne comprends rien aux expressions régulières ... à tel point que je n'arrive pas à faire fonctionner le pré-mâché : http://www.thescripts.com/forum/thread92239.html <cit.> String.prototype.ucwords = function(){ return this.replace(/bw/gi, function(c,i,s) { return c.toUpperCase(); }); } </cit.>
Alors, voici en laborieux (et touj pas complet) :
function capitalise(Input) { var cap = function(quoi) { for (var i=0; i<quoi.length; i++) quoi[i] = quoi[i].charAt(0).toUpperCase() + quoi[i].substring(1); return quoi; } var chaine = Input.value.toLowerCase(); // elimination des espaces avant ou après chaine = chaine.replace(/(^s+|s+$)/g,''); // elimination des doubles espaces chaine = chaine.replace(/ +/g,' '); // elimination des espaces autour tiret chaine = chaine.replace(/( - | -|- )/g,'-'); // mise en maj de 1er caractère des elements du tableau des mots // séparés par espace et idem tableau résultant avec séparateur tiret chaine = cap(cap(chaine.split(' ')).join(' ').split('-')).join('-'); /* variante à ligne ci-dessus : chaine = cap(chaine.split(' ')).join(' '); chaine = cap(chaine.split('-')).join('-'); */ Input.value = chaine; }
à employer comme suit :
<input onchange="capitalise(this);">
-- sm
Ceci dit... Je note la remarque d'Olivier et je me demandais si je pouvais
abuser, SAM, en te demandant ce que ca donnerait en respectant l'espace du
milieu s'il est présent ? C'est a dire si la sépâration est un tiret on la
garde et si c'est un espace aussi, mais on passe bien tous les prénoms en
majuscules
Je ne comprends rien aux expressions régulières ...
à tel point que je n'arrive pas à faire fonctionner le pré-mâché :
http://www.thescripts.com/forum/thread92239.html
<cit.>
String.prototype.ucwords = function(){
return this.replace(/bw/gi, function(c,i,s) { return
c.toUpperCase(); });
}
</cit.>
Alors, voici en laborieux (et touj pas complet) :
function capitalise(Input) {
var cap = function(quoi) {
for (var i=0; i<quoi.length; i++)
quoi[i] = quoi[i].charAt(0).toUpperCase() +
quoi[i].substring(1);
return quoi;
}
var chaine = Input.value.toLowerCase();
// elimination des espaces avant ou après
chaine = chaine.replace(/(^s+|s+$)/g,'');
// elimination des doubles espaces
chaine = chaine.replace(/ +/g,' ');
// elimination des espaces autour tiret
chaine = chaine.replace(/( - | -|- )/g,'-');
// mise en maj de 1er caractère des elements du tableau des mots
// séparés par espace et idem tableau résultant avec séparateur tiret
chaine = cap(cap(chaine.split(' ')).join(' ').split('-')).join('-');
/* variante à ligne ci-dessus :
chaine = cap(chaine.split(' ')).join(' ');
chaine = cap(chaine.split('-')).join('-');
*/
Input.value = chaine;
}
Ceci dit... Je note la remarque d'Olivier et je me demandais si je pouvais abuser, SAM, en te demandant ce que ca donnerait en respectant l'espace du milieu s'il est présent ? C'est a dire si la sépâration est un tiret on la garde et si c'est un espace aussi, mais on passe bien tous les prénoms en majuscules
Je ne comprends rien aux expressions régulières ... à tel point que je n'arrive pas à faire fonctionner le pré-mâché : http://www.thescripts.com/forum/thread92239.html <cit.> String.prototype.ucwords = function(){ return this.replace(/bw/gi, function(c,i,s) { return c.toUpperCase(); }); } </cit.>
Alors, voici en laborieux (et touj pas complet) :
function capitalise(Input) { var cap = function(quoi) { for (var i=0; i<quoi.length; i++) quoi[i] = quoi[i].charAt(0).toUpperCase() + quoi[i].substring(1); return quoi; } var chaine = Input.value.toLowerCase(); // elimination des espaces avant ou après chaine = chaine.replace(/(^s+|s+$)/g,''); // elimination des doubles espaces chaine = chaine.replace(/ +/g,' '); // elimination des espaces autour tiret chaine = chaine.replace(/( - | -|- )/g,'-'); // mise en maj de 1er caractère des elements du tableau des mots // séparés par espace et idem tableau résultant avec séparateur tiret chaine = cap(cap(chaine.split(' ')).join(' ').split('-')).join('-'); /* variante à ligne ci-dessus : chaine = cap(chaine.split(' ')).join(' '); chaine = cap(chaine.split('-')).join('-'); */ Input.value = chaine; }