Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

FONCTION UCWORDS


Information sur la source

Catégorie :Formulaire Classé sous : conversion, majuscule, formulaire, mots, texte Niveau : Débutant Date de création : 25/06/2007 Date de mise à jour : 25/06/2007 14:12:15 Vu : 4 684

Note :
8 / 10 - par 1 personne
8,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (10)
Ajouter un commentaire et/ou une note

Description

Fonction qui permet de mettre en majuscules toutes les premières lettres de chaque mot d'un texte, et tout le reste en minuscules.

L'option tiret est également gérée, notamment pour les prénoms ou mot composés.

Merci de vos commentaires...et de votre indulgence.

 

Source

  • function ucWords(chaine, avectirets) {
  • var valeur="";
  • if ((chaine) && (chaine!=""))
  • {
  • valeur = chaine.toLowerCase();
  • // Analyse des mots séparés par des espaces
  • var mots = valeur.split(' ');
  • for(var i = 0; i < mots.length; i++)
  • {
  • if(mots[i].length > 1)
  • {
  • carac = mots[i].split('');
  • carac[0] = carac[0].toUpperCase();
  • mots[i] = carac.join('');
  • }
  • else
  • {
  • mots[i] = mots[i].toUpperCase();
  • }
  • }
  • valeur = mots.join(' ');
  • if ((avectirets) && ((avectirets==false) || (avectirets==true)))
  • {
  • if (avectirets==true)
  • {
  • // Analyse des mots séparés par des tirets (si demandé)
  • var mots = valeur.split('-');
  • for(var i = 0; i < mots.length; i++)
  • {
  • if(mots[i].length > 1)
  • {
  • carac = mots[i].split('');
  • carac[0] = carac[0].toUpperCase();
  • mots[i] = carac.join('');
  • }
  • else
  • {
  • mots[i] = mots[i].toUpperCase();
  • }
  • }
  • valeur = mots.join('-');
  • }
  • }
  • }
  • return valeur;
  • }
function ucWords(chaine, avectirets) {
var valeur="";
if ((chaine) && (chaine!=""))
{
	valeur = chaine.toLowerCase();

	// Analyse des mots séparés par des espaces
	var mots = valeur.split(' ');
	for(var i = 0; i < mots.length; i++)  
	{
		if(mots[i].length > 1) 
		{
			carac = mots[i].split('');
			carac[0] = carac[0].toUpperCase();
			mots[i] = carac.join('');
		} 
		else 
		{
			mots[i] = mots[i].toUpperCase();
		} 
	}
	valeur = mots.join(' ');
	
	if ((avectirets) && ((avectirets==false) || (avectirets==true)))
	{
		if (avectirets==true)
		{
			// Analyse des mots séparés par des tirets (si demandé)
			var mots = valeur.split('-');
			for(var i = 0; i < mots.length; i++) 
			{
				if(mots[i].length > 1) 
				{
					carac = mots[i].split('');
					carac[0] = carac[0].toUpperCase();
					mots[i] = carac.join('');
				} 
				else 
				{
					mots[i] = mots[i].toUpperCase();
				}
			}
			valeur = mots.join('-');
		}
	}
}
return valeur;
}

Conclusion

S'utilise de la façon suivante :

chaine = ucWords(chaine);
 

Historique

25 juin 2007 14:12:15 :
Erreur de frappe sur le descriptif...

Commentaires et avis

signaler à un administrateur
Commentaire de kankrelune le 25/06/2007 13:36:16

Salut... deux remarques après avoir juste survolé le code...

je serais toi je le mettrait comme prototype de l'objet string vu que cette fonction ne concerne que les chaines... et comme ça tu économise un paramètre... .. .

Pourquoi valeur = chaine.toLowerCase(); tu ne devrais toucher qu'à la casse des première lettres de chaque mots les autres lettres ne concernant pas cette fonction... .. .

@ tchaOo°

signaler à un administrateur
Commentaire de kakoo le 25/06/2007 14:11:05

Bonjour,

Merci pour tes remarques.

Concernant ta question sur le "toLowerCase", le but de la fonction est bien de mettre tout le texte en minuscules, sauf les premières lettres de chaque mot, donc... ;)

Ceci étant, si tu veux conserver le texte dans sa forme originale, sauf les premières de chaque mot en majuscules, on peut évidemment mettre cette ligne en commentaire.

Merci

signaler à un administrateur
Commentaire de bultez le 26/06/2007 11:44:50


salut à vous.

2 alternatives ? il doit y en avoir d'autres...

<body>
<input type="text" style="text-transform:capitalize"
size=128
id="txt" /><br />
<script type="text/javascript">

// pour le test
var tmp="exemple TOTO, et La jean-claude ?";

//la 1ère :
document.getElementById("txt").value=tmp;

//la 2ème :
tmp=tmp.replace(/\w*/g, function($0)
{ return $0.toUpperCase().charAt(0)+$0.substring(1) } );
alert(tmp);

</script>
</body>

signaler à un administrateur
Commentaire de bultez le 26/06/2007 13:44:11

j'ai omis de dire que pour mettre le reste
du mot en minuscules : ajouter toLowerCase.
@+

signaler à un administrateur
Commentaire de adelami le 27/06/2007 20:09:13

Bonjour,
Quelqu'un pourrais m'expliquer cette partie du code de Bultez, s'il vous plait :

tmp=tmp.replace(/\w*/g, function($0)
{ return $0.toUpperCase().charAt(0)+$0.substring(1) } );

?
Merci par avance!
Adelami

signaler à un administrateur
Commentaire de bultez le 28/06/2007 08:40:26

que ne comprends-tu pas adelami ?
c'est une expression régulière
on y prend tous les "mots" ( /\w*/g )
que l'on remplace par le résultat d'une fonction
$0 étant le "mot trouvé".
toUpperCase, charAt et substring je pense que c'est ok.
@+

signaler à un administrateur
Commentaire de adelami le 28/06/2007 22:48:07

Ok, merci, j'ai tout bien compris maintenant.
Par contre, j'avais jamais vu le "/\w*/g" auparavant !
Auf Viedersehen!
Adelami

signaler à un administrateur
Commentaire de jumano le 15/09/2007 08:57:36

Bonjour,
J'aimerais savoir si "chaine" correspond au nom du champs texte dans un formulaire, par exemple <input name="chaine" type="text">.
Merci

signaler à un administrateur
Commentaire de kakoo le 15/09/2007 11:43:55

Bonjour,

"chaine" correspond à n'importe quelle chaîne de caractères.

Elle peut donc être le contenu d'un champ texte dans un formulaire.

Galawa

signaler à un administrateur
Commentaire de nicomilville le 30/03/2008 12:26:14 8/10

Salut, bon code mais il me semble qu'il existe une propriété CSS permettant de faire ça maintenant !!!

8/10

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Texte riche [ par senechjf ] Bonjour,J'ai fait un fomulaire d'ajout de news pour mon site en php.Cette news va dans une bd mysql.J'aimerai améliorer mon formulaire en offrant la p texte en majuscule [ par jacoco ] bonjour,je recherche un javascript qui transforme mon texte en majuscule et qui vire les accents.Merci de votre aide@++ pb verif formulaire [ par MarsL ] J'ai un formualire avec le premier champs obligatoire de type texte et qui ne doit pas etre nul.Actuellement je vérifie juste s'il n'est pas nul.Et lo bouton texte dans un formulaire [ par attentio ] slt !je voudrais remplacer un bouton image dans un formulaire qui me permet de reactualiser ce formulaire, par un bouton texte (&lt;a&gt;mon bouton&lt récupérer les données d'un formulaire javascirpt [ par zebrei ] Bonjour,j'ai téléchargé une source épatante sur ce site : http://www.javascriptfr.com/code.aspx?id=25847rich text editor.C'est chouette, c'est pratiqu visualisation d'un formulaire en popup [ par sandwu ] Bonjour! j'ai besoin de&nbsp; faire une pr&#233;visualisation (du texte avec parseur bbcode) de mon formulaire, j'ai donc deux boutons pour pr&#233;vi Transformer un texte de formulaire en code HTML [ par rshark ] bonjour .. comment on peut faire pour que quand on &#233;crit un texte dans une zone formulaire comme pour poster un article ici ..&nbsp;le texte soit Récupérer des données de formulaire dans une popup(URGENT) [ par jerem_0401 ] Bonjour,Je suis vraiment perdu.... Mon probl&#232;me est le suivant.J'ai un formulaire de type quizz avec plusieurs objets dedans comprenant des check [Javascript]Modifier une zone de texte dans un formulaire [ par Nano84 ] Bonjour, Voil&#224;, j'ai un petit soucis... en fait je dois faire en sorte qu'en cliquant sur un bouton du formulaire, cela modifie le texte d'une onClick [ par aquouel ] Bonjour tout le monde, je débute dans le javascript depuis peu, et j'aimerai savoir si quand on clique sur un bouton d'un formulaire (qui utilise onC


Nos sponsors

Sondage...

CalendriCode

Novembre 2008
LMMJVSD
     12
3456789
10111213141516
17181920212223
24252627282930

Consulter la suite du CalendriCode

Appels d'offres

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,390 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.