Erreur de synthaxe javascript ou regex ?

Signaler
Messages postés
159
Date d'inscription
mardi 2 janvier 2007
Statut
Membre
Dernière intervention
7 mai 2012
-
neigedhiver
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
-
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 renvoie que false, alors que je mets bien des nombres.

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

3 réponses

Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
15
Salut,

Je dirais que c'est une erreur de syntaxe Javascript.
Pour définir une RegExp en Javascript, il y a deux syntaxes :

// Syntaxe 1 :
var reg = /^\d{1,9}$/g
// Syntaxe 2 :
var reg = new RegExp('^\d{1,9}$', 'g');

Toi, tu as fait un mélange des deux ^^

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
Messages postés
159
Date d'inscription
mardi 2 janvier 2007
Statut
Membre
Dernière intervention
7 mai 2012

Salut,
effectivement, j'ai trouvé depuis et c la synthaxe 2 que j'utilise.
function isNumber(elem,nbNbr){ //fonction pour verif structure NBR
        var exp = new RegExp("^[0-9]{1,"+nbNbr+"} *$","g");
        return exp.test(elem);
}


J'aurai du y répondre avant, mais j'avais oublié que j'avais créé ce post.
Merci, tout de même, pour ton aide
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
15
LOL pardon, j'avais pas vu la date... Je suis habitué au forum de phpcs qui est .. euh... plus vivant lol
Désolé d'avoir déterré un vieux post !

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)