Appliquer regexp en fonction de choix de liste

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

06 sept. 2006, 11:40

Doit rester une erreur dans ton code, car il n'y a pas de raison pour que cela ne fonctionne pas... fais voir le dernier en date :)

Eléphanteau du PHP | 33 Messages

06 sept. 2006, 11:48

<script>
function chiffres() {
  // si l'option selectionnée a pour valeur 67
  if (document.validation.departement.options[document.validation.departement.selectedIndex].value == 67) {

    reg = new RegExp(/[0-9]{2}\\.[0-9]{2}\\.[0-9]{2}\\.[0-9]{2}\\.[0-9]{2}/);
    if (reg.test(document.validation.departement.value)) {
        //un traitement quelconque
    }
    else {
      alert('Veuillez saisir le téléphone sous format 00 00 00 00 00');
      document.validation.departement.value = "";   
    }
  }
}
</script>

<form method="post" onSubmit="return checkbae()" action="http://localhost/lists/?p=subscribe&id=1" name="validation" target = "_self">

Pays</td>
      <td><select name="departement" id="departement">
          <option value="67">Bas-Rhin (67)</option>
          <option value="68">Haut-Rhin (68)</option>
        </select>


Telephone
<input type=text name="attribute21"  class="attributeinput"  size="40"  onBlur="chiffres(event)" maxLength="20" value="00 00 00 00 00" >

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

06 sept. 2006, 11:55

Raaah bah forcément, tu as collé du "departement" de partout !! :)

"departement" c'est ta liste déroulante et "attribute21" c'est ton champ. Quand tu dois tester ta liste il faut du "departement" et quand tu dois récupérer la valeur saisie tu utilises "attribute21" :)

Ps : A noter que si dans ton expression tu met un point sans les crochets, cela corresond à n'importe quel caractère, pas forcément le point...

Eléphanteau du PHP | 33 Messages

06 sept. 2006, 12:06

oups, je pensais avoir bien modifié, mais non tjs rien lo :
 <script>
function chiffres() {
  // si l'option selectionnée a pour valeur 67
  if (document.validation.departement.options[document.validation.departement.selectedIndex].value == 67) {

    reg = new RegExp(/[0-9]{2}.[0-9]{2}.[0-9]{2}.[0-9]{2}.[0-9]{2}/);
    if (reg.test(document.validation.attribute21.value)) {
        //un traitement quelconque
    }
    else {
      alert('Veuillez saisir le téléphone sous format 00 00 00 00 00');
      document.validation.attribute21.value = "";   
    }
  }
}
</script>

<form method="post" onSubmit="return checkbae()" action="http://localhost/lists/?p=subscribe&id=1" name="validation" target = "_self">

Pays</td>
      <td><select name="departement" id="departement">
          <option value="67">Bas-Rhin (67)</option>
          <option value="68">Haut-Rhin (6Cool</option>
        </select>


Telephone
<input type=text name="attribute21"  class="attributeinput"  size="40"  onBlur="chiffres(event)" maxLength="20" value="00 00 00 00 00" > 

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

06 sept. 2006, 12:12

Comment ça toujours rien ?
Chez moi il tourne bien ce code :)

Eléphanteau du PHP | 33 Messages

06 sept. 2006, 12:16

enfin tjs rien wé pardon, le code semble fonctionner, mais now j'aimerai bien que la regexp permette juste de saisir le numero d telephone, de cette facon la :

Code : Tout sélectionner

00 00 00 00 00
Et j'ai testé de modif par des \\. , mais sans succes :

Code : Tout sélectionner

reg = new RegExp(/[0-9]{2}\\.[0-9]{2}\\.[0-9]{2}\\.[0-9]{2}\\.[0-9]{2}/);

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

06 sept. 2006, 12:25

Je vois pas en quoi "\\." pourrait représenter un espace ? :)

Eléphanteau du PHP | 33 Messages

06 sept. 2006, 12:33

lol, c'est ce qu'on m'as dit sur un autre forum php oO. donc quelle serait la syntaxe selon toi pour un espace entre les paires de chiffres ? oO

Eléphanteau du PHP | 33 Messages

06 sept. 2006, 12:38

ah, c'est bon trouvé a priori, le : "\s" ? :=)

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

06 sept. 2006, 12:53

C'est une solution en effet :)

Si tu jettes un coup d'oeil à la doc, tu verras que tu peux aussi utiliser la classe [:space:], et si tu es un peu curieux, tu peux voir que le caractère espace directement fonctionne tout aussi bien ;)

Comme quoi il suffit parfois juste de chercher un peu pour trouver tout seul ce dont on a besoin :)

Eléphanteau du PHP | 33 Messages

06 sept. 2006, 13:32

Oui c'est sur, merci de l'aide en tout cas Ryle.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

06 sept. 2006, 14:22

Y a pas de quoi :)

[Résolu] :?: :!: