Erreur de synthaxe fonction RegExp ?

Résolu
dvwyns Messages postés 159 Date d'inscription mardi 2 janvier 2007 Statut Membre Dernière intervention 7 mai 2012 - 23 juin 2010 à 11:34
dvwyns Messages postés 159 Date d'inscription mardi 2 janvier 2007 Statut Membre Dernière intervention 7 mai 2012 - 23 juin 2010 à 22:50
Bonjour,

Après plusieurs essais infructueux, j'aimerais demander conseils à la communauté.
Je cherche à faire une fonction qui vérifie les champs d'un formulaire, j'utilise un regex pour savoir si un champ contient que des nombres avec un maximum de 9 nombres, si oui la fonction renvoi true sinon false.
Malheureusement, pour une raison que j'ignore, il ne me renvoi que false.

function isNumber(elem){ //fonction pour verif si nombre

ExpReg = new RegExp("/^\d{1,9}$/g");
var bonnb = ExpReg.test(elem.value);
return bonnb;
}

Mais ou est mon erreur?
Merci

4 réponses

PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
23 juin 2010 à 20:13
Bonjour,
peux être pas besoin de RegExp
tu peut tester si la chaine is No Numeric avec la fonction isNaN, et tester la longueur de la chaine
//------------------
function Test( txt_){
  if( !isNaN( txt_)){
    if( txt_.length < 10)
      return( true);
  }
  return( false);
}

mais avec une RegExp c'est à priori faisable
var szReg = new RegExp("^[0-9]{2,9} *$","g");

à tester comme il faut quand même


;O)
3
dvwyns Messages postés 159 Date d'inscription mardi 2 janvier 2007 Statut Membre Dernière intervention 7 mai 2012
23 juin 2010 à 22:35
Bonjour,

Tout d'abord, merci pour ton aide.
J'ai essayé les 2 codes que tu m'as proposé mais ça ne fonctionne pas non plus.
Pourtant, je ne vois aucune raison que ça ne fonctionne pas :-/

J'ai verifié toutes les valeurs que j'utilise, et rien à faire c au nv du test que ça ne fonctionne pas (sniff).
Je mets le nouveau code avec la fonction qui appelle cette fonction, p-e que ça t'aidera.

function isNumber(elem){ //fonction pour verif structure NBR
if(!isNaN( elem.value)){
if( elem.value.length < 10)
return( true);
}
return false;
}

//vérifie tout les champs d'un formulaire (ici les champs requis et les nombres)
function verifField(zone){ //zone == document.forms['form']
for(var i=0;i<zone.length;i++){
var id = zone.elements[i].id;//l'id comprend "req" pour requis "nbr" pour nombre
tabid = id.split("_"); //c 'est mots clés sont séparés par un "_"
if(zone.elements[i].value==""){
if(tabid[tabid.length-3]=="req"){ //verifie champs requis
zone.elements[i].style.border = '2px solid red';
}
}
else{
if(tabid[tabid.length-2]=="nbr"){
if(!isNumber(zone.elements[i].value))
alert("no good");
}
}

Merci.
0
dvwyns Messages postés 159 Date d'inscription mardi 2 janvier 2007 Statut Membre Dernière intervention 7 mai 2012
23 juin 2010 à 22:40
Sorry, j'ai oublié de mettre ça dans des balises code du site. ça sera qd même plus clair

function isNumber(elem){ //fonction pour verif structure NBR
  if(!isNaN( elem.value)){
    if( elem.value.length < 10)
       return( true);
  }
  return false;
}

//vérifie tout les champs d'un formulaire (ici les champs requis et les nombres)
function verifField(zone){ //zone == document.forms['form']
  for(var i=0;i<zone.length;i++){
    var id = zone.elements[i].id;//l'id comprend "req" pour requis "nbr" pour nombre
    tabid = id.split("_"); //c 'est mots clés sont séparés par un "_"
    if(zone.elements[i].value==""){
      if(tabid[tabid.length-3]=="req"){ //verifie champs requis
        zone.elements[i].style.border = '2px solid red';
      }
    }
    else{
      if(tabid[tabid.length-2]=="nbr"){
         if(!isNumber(zone.elements[i].value))
           alert("no good");
      }
    } 
  }
}
0
dvwyns Messages postés 159 Date d'inscription mardi 2 janvier 2007 Statut Membre Dernière intervention 7 mai 2012
23 juin 2010 à 22:50
Ok, sorry... je me suis perdu dans mon code et j'ai mis dans la 1ère fonction isNumber(zone.elements[i].value) et dans la fonction isNumber(elem) j'appelle elem.value dans le la fonction test...
Ce qui donnerai zone.elements[i].value.value :-/
C un peu bidon... double sorry
Je vais mettre cette question comme résolu puisque de tout façon mon regex était pas bon et que tu m'en a donné un sympa ;)

Merci encore
0
Rejoignez-nous