2 votes

preg_match à la fonction Javascript

$value = 077283331111333;    
if( ! preg_match(/^[0-9]{1,20}+$/, $value))
{
    echo $value . " is not a number that has between 1,20 digits";
}

J'essaie de transformer cette déclaration conditionnelle Php en une déclaration Javascript.

Voici ce que j'ai, qui ne fonctionne pas actuellement.

var value = 077283331111333;
var regex = '/^[0-9]{1,20}+$/';
var match = regex.test(value);
if ( ! match) {
    console.log(value + 'is not a number that has between 1,20 digits');
}

Et voici l'erreur que je reçois.

L'objet /^[1,0]{1}+$//^[0-9]{1,20}+$/ n'a pas de méthode 'test'.

Des idées ? En outre, ceci dans un environnement node.js.

3voto

Pablo Fernandez Points 32003

Cette méthode est indéfinie car ce n'est pas un regex mais une chaîne de caractères.

Vous devez laisser tomber les guillemets afin de créer une RegExp en javascript :

var regex = /^[1,0]{1}+$//^[0-9]{1,20}+$/;

Quoi qu'il en soit Je ne pense pas que ce soit une regex valide (à cause des doubles slashs), vous devriez vérifier les fautes de frappe...

Une regex pour vérifier un nombre entre 1 et 20 chiffres est juste :

var regex = /^\d{1,20}$/

3voto

genesis Points 32591

Essayez de supprimer les guillemets simples de votre expression rationnelle.

var value = 077283331111333;
var regex = /^[1,0]{1}+$//^[0-9]{1,20}+$/;
var match = regex.test(value);
if ( ! match) {
    console.log(value + 'is not a number that has between 1,20 digits');
}

1voto

GodFather Points 731

Essayer de supprimer les guillemets de la variable regex.

1voto

zellio Points 8863
if ( /regex/.match( value ) ) {
  //do stuff
}

0voto

Ivan Nikolchov Points 871

C'est une regexp bizarre... pourquoi ne pas utiliser
/^\d{1,20}$/.test(value)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X