traitement de chaine

Invité
Invité n'ayant pas de compte PHPfrance

25 mars 2008, 14:16

la ligne suivante fonctionne
if (texte.substr(j,1) == "-") alert(texte.substr(j+1,1).toUpperCase());
Pour "tire-bouchon", le code affiche "B".
ça veut dire que mon caractère est bien identifié et passé en majuscules. Poutant le texte qui m'est retourné après join() n'est pas transformé comme souhaité.

Invité
Invité n'ayant pas de compte PHPfrance

25 mars 2008, 14:23

ceci ne marche pas non plus
if (texte.substr(j,1) == "-") texte[j+1].toUpperCase();
ça veut dire qu'on en peut pas traiter une chaine de caractères comme un tableau?
je pensais que oui...

Mammouth du PHP | 965 Messages

25 mars 2008, 14:31

la ligne suivante fonctionne
if (texte.substr(j,1) == "-") alert(texte.substr(j+1,1).toUpperCase());
Pour "tire-bouchon", le code affiche "B".
ça veut dire que mon caractère est bien identifié et passé en majuscules. Poutant le texte qui m'est retourné après join() n'est pas transformé comme souhaité.
C'est normal comme marqué dans mon post précédent tout les caracteres sont mis sous forme de tableau et le tableau est réunifié a la fin pourtant tu ne lui dis pas que ce caractere de la chaine fais partis du tableau il faut le définir avec

t[j] =

Comme pour les précédent

Invité
Invité n'ayant pas de compte PHPfrance

25 mars 2008, 14:41

bon je vais abandonner ça. j'ai testé ta fonction qui marche très bien, merci pour ton aide.

Invité
Invité n'ayant pas de compte PHPfrance

25 mars 2008, 14:48

non...en fait ton code marche sous firefox, pas ie.
Voici mon code avec ma fonction first2ppercase + ta fonction ajoutermajuscules
nom.value    = AjouterMajuscule(First2UpperCase(nom.value.trim()));
prenom.value = AjouterMajuscule(First2UpperCase(prenom.value.trim()));
sous ie, je reçois l'erreur
Error:'undefined' a la valeur Null ou n'est pas un objet

Invité
Invité n'ayant pas de compte PHPfrance

25 mars 2008, 14:53

voici ta fonction modifiée légèrement que j'utilise
function AjouterMajuscule(string) 
{ 
    if(string.search('-') != -1) 
    { 
    CouperChaine = string.split("-"); 
    var txt = CouperChaine[0].substr(0,1).toUpperCase()+CouperChaine[0].substr(1)+"-"+CouperChaine[1].substr(0,1).toUpperCase()+CouperChaine[1].substr(1);
	}
	else
	{
	var txt = string.substr(0,1).toUpperCase()+string.substr(1); 
	}
	return txt; 
	
} 

Mammouth du PHP | 965 Messages

25 mars 2008, 14:55

Bien sur tu peux l'améliorer je pense mais bon c'est ce que j'aurais fait plutôt que galerer a adapter une fonction que j'aurais du mal a comprendre, autant faire un truc a ta sauce qui tourne et que tu comprends bien, quitte a l'améliorer par la suite.

En tout cas oui j'avais pas fait le test pour IE :roll:

Bon courage.

Invité
Invité n'ayant pas de compte PHPfrance

25 mars 2008, 15:57

bon ben merci pour tes conseils mais g me retrouve au point de départ...personne ne pourrait m'aider à mettre en majuscules la lettre suivant un caractère donné?

Mammouth du PHP | 19672 Messages

25 mars 2008, 17:02

Un peu de méthode messieurs, ce serait un bon point de départ.

L'idée générale :

La première chose à faire, c'est de détecter un tiret dans le mot à traiter (puisqu'on sait au départ qu'un mot composé comporte un tiret, rien d'autre). Si on en trouve un, on va créer un tableau indexé contenant les deux mots séparés en utilisant la fonction split(). Tu pourras alors mettre la première lettre de chacun des deux en majuscule et après ça, tu recomposes le mot avec join() sur ton tableau et retourner ton mot-composé.

Je te donne le chemin, à toi de traduire ça en code ;)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: