Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#26 Le 22/08/2008, à 20:17

Totor

Re : [JAVASCRIPT] formulaire, expressions régulières, remplacement

Non, au contraire, tu ne perds rien :

<script language="javascript">
 function transformer(pRegex, pValeur, pCase)
{
  var maRegEx = new RegExp(pRegEx,"");
  var val = pValeur;
  var subVal;

  while (val.match(maRegEx))
    {
      subval = new String(maRegEx.exec(val)[0]);
      if (pCase == 0)
         subVal = subVal.toUpperCase();
      else
       subVal = subVal.toLowerCase();

      val = val.replace(maRegEx,subval);
}
      return val;
}
function formater(champ)
{
  var val = champ.value;
  var first = val.charAt(0);
  var suite = val.substr(1);
  var reg = new RegExp("[ -][a-z]{1}");
  var subval;

  if (/[a-z]/.test(first))
    {
      first = first.toUpperCase();
      suite = suite.toLowerCase();
      val = first + suite;
    }

  val = transformer("[ -][a-z]{1}",val, 0);
  val = transformer(" (De|Du|Des) ",val,1);
  val = transformer(" (L\'|D\')[ ]{0,1}",val,1);
  champ.value=val;
}

</script>

N'est-ce pas mieux ainsi ?

Note: je n'ai absolument pas testé car je suis pressé mais dans le principe c'est ça !

Dernière modification par Totor (Le 22/08/2008, à 20:18)


-- Lucid Lynx --

Hors ligne

#27 Le 22/08/2008, à 23:44

Astier

Re : [JAVASCRIPT] formulaire, expressions régulières, remplacement

Si la fonction formater m'est claire, j'ai quelques difficultés à comprendre la fonction transformer(pRegex, pValeur, pCase), je dirai même que je n'y comprends pas grand chose hmm Pourrais-tu détailler ce qui est fait s'il te plaît ?

D'ailleurs pour la fonction transformer et plus particulièrement en ce qui concerne la mise en majuscule de la première lettre et la mise en minuscule du reste de la chaîne, je pense que l'on peut se passer de la vérification : val = first.toUpperCase() + suite.toLowerCase() d'autant plus qu'on ne vérifie pas la casse de suite ; ou est-ce absurde ? Cela ne doit guère prendre trop de ressources.

Merci encore et à bientôt.

Hors ligne

#28 Le 08/09/2008, à 23:48

Astier

Re : [JAVASCRIPT] formulaire, expressions régulières, remplacement

Un petit up pour avoir des explications s'il vous plaît ?

Encore merci, à bientôt.

Hors ligne

#29 Le 09/09/2008, à 14:15

Totor

Re : [JAVASCRIPT] formulaire, expressions régulières, remplacement

L'ensemble des transformations de chaine que tu effectues, ce sont changements de case selon un motif et suivant le même principe.  C'est pourquoi,  j'ai externalisé ces traitements pour en faire une "fonction" générique : transformer.
Elle prend donc 3 paramètres :
1. pRegex : le motif identifiant les changements effectuer
2. pValeur : chaine de caractères sur laquelle le motif est à rechercher
3. pCase : indique s'il faut mettre en majuscule (0) ou en minuscule (tout autre valeur)
Enfin, elle renvoie le résultat de la transformation.


Concernant ton 2nd point, tu peux effectivement te passer du test et passer la 1ère lettre en majuscule et les suivantes en minuscule dans tous les cas.


-- Lucid Lynx --

Hors ligne

#30 Le 10/09/2008, à 17:54

Astier

Re : [JAVASCRIPT] formulaire, expressions régulières, remplacement

Merci pour ces explications, je testerai ça prochainement smile

Hors ligne