11521 sujets

JavaScript, DOM et API Web HTML5

Bonsoir à tous, alors voila, après avoir visité je ne sais combien de site et testé je ne sais combien de solution je me tourne vers vous.

Donc voila, je voudrais tester la saisie d'un numéro de téléphone (fixe uniquement) j'ai donc écrit le code suivant




if ( valeur.length == 10 ){
			
			patt = RegExp("/^(01|02|03|04|05|08|09)[0-9]{8}/g");
			var res = patt.test(valeur);
			
			if(res){
				msgErreur = "Seul les numéros de téléphone fixe son autorisé";
				type = "error";
				errorForm(context, msgErreur, type);
				return false;
			}
		
		}



"valeur" contient le numéro de téléphone.

Mais se code accepte aussi les 06 et 07 alors qu'il ne le devrai pas ! (enfin si j'ai pas fait de bourde).

Enfin voilà, si quelqu'un saurait me dire pourquoi ça tourne pas rond j'en serais ravi.

Merci
Modérateur
Salut,

je sais pas trop ce qui cloche avec ta regexp mais je serais partit sur un truc tout simple du genre :

0[0-58-9][0-9]{8}

Modifié par _laurent (17 Oct 2016 - 23:21)
_laurent a écrit :
Salut,

je sais pas trop ce qui cloche avec ta regexp mais je serais partit sur un truc tout simple du genre :

0[0-58-9][0-9]{8}


Bonsoir, merci bien pour ta réponse, c'est effectivement plus cour mais le problème reste entier....

Après je ne suis pas un spécialiste des RegEx, mais j'avais testé le code avec "Regex Tester" et le teste fonctionne parfaitement, serai-ce donc du à une mauvaise interprétation du navigateur ou peut être la condition qui n'est pas bonne ?
Merci beaucoup !!! cela fonctionne parfaitement, j'ai modifier ma ligne de code et modifier mon if et cela fonctionne a merveille. Je poste le code qui fonctionne au cas ou quelqu'un en aurai l'utilité


 if ( valeur.length == 10 ){
			
		 var patt = new RegExp('(01|02|03|04|05|08|09)[0-9]{8}');
			var res = patt.test(valeur);
			
			if(!res){
				msgErreur = "Seul les numéros de téléphone fixe son autorisé";
				type = "error";
				errorForm(context, msgErreur, type);
				return false;
			}
		
		}


Pour être plus clair j'ai remplacer
 patt = RegExp("/^(01|02|03|04|05|08|09)[0-9]{8}/g");
part
 var patt = new RegExp('(01|02|03|04|05|08|09)[0-9]{8}');


et modifié
if(res){
part
if(!res){
parce que ma condition fonctionnait à l'envers.

Merci encor