Je veux utiliser JavaScript (peut être avec jQuery) pour effectuer une validation côté client afin de vérifier si une chaîne correspond à la regex:
^([a-z0-9]{5,})$
Idéalement, ce serait une expression qui renvoie Vrai ou Faux.
Je suis un débutant en JavaScript, match()
fait-il ce dont j'ai besoin? Il semble vérifier si une partie d'une chaîne correspond à une expression rationnelle, pas le tout.
Utilisez regex.test()
si tout ce que vous voulez est un résultat booléen:
console.log(/^([a-z0-9]{5,})$/.test('abc1')); // false
console.log(/^([a-z0-9]{5,})$/.test('abc12')); // true
console.log(/^([a-z0-9]{5,})$/.test('abc123')); // true
... et vous pouvez supprimer le ()
de votre expression rationnelle car vous n'avez pas besoin de capture.
Utilisez la méthode test()
:
var term = "sample1";
var re = new RegExp("^([a-z0-9]{5,})$");
if (re.test(term)) {
console.log("Valid");
} else {
console.log("Invalid");
}
Vous pouvez aussi utiliser match()
:
if (str.match(/^([a-z0-9]{5,})$/)) {
alert("match!");
}
Mais test()
semble être plus rapide, comme vous pouvez le lire ici .
Différence importante entre match()
et test()
:
match()
ne fonctionne qu'avec des chaînes, mais test()
fonctionne aussi avec des entiers.
12345.match(/^([a-z0-9]{5,})$/); // ERROR
/^([a-z0-9]{5,})$/.test(12345); // true
/^([a-z0-9]{5,})$/.test(null); // false
// Better watch out for undefined values
/^([a-z0-9]{5,})$/.test(undefined); // true
Utilisez /youregexp/.test(yourString)
si vous voulez seulement savoir si votre chaîne correspond à l'expression rationnelle.
Voici un exemple qui recherche certaines balises HTML afin qu'il soit clair que /someregex/.test()
renvoie un booléen:
if(/(span|h[0-6]|li|a)/i.test("h3")) alert('true');
let str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
let regexp = /[a-d]/gi;
console.log(str.match(regexp));
Je recommanderais d'utiliser la méthode execute qui renvoie null si aucune correspondance n'existe sinon elle renvoie un objet utile.
let case1 = /^([a-z0-9]{5,})$/.exec("abc1");
console.log(case1); //null
let case2 = /^([a-z0-9]{5,})$/.exec("pass3434");
console.log(case2); // ['pass3434', 'pass3434', index:0, input:'pass3434', groups: undefined]
essayer
/^[a-z\d]{5,}$/.test(str)
console.log( /^[a-z\d]{5,}$/.test("abc123") );
console.log( /^[a-z\d]{5,}$/.test("ab12") );
s'il vous plaît essayer cette fleur:
/^[a-z0-9\_\.\-]{2,20}\@[a-z0-9\_\-]{2,20}\.[a-z]{2,9}$/.test('[email protected]');
vrai