Tester si une chaîne correspond à une expression régulière en JS

Je souhaite utiliser JavaScript (je peux aussi utiliser jQuery) pour vérifier si une chaîne de caractères correspond à la regex ^([a-z0-9]{5,})$, et obtenir un résultat true ou false.

match() permet de tester si une partie d’une chaîne de caractères correspond à une regex, et non l’ensemble de la chaîne. Cela résout-il le problème ? Puis-je l’adapter pour résoudre le problème ?

Utilisez regex.test() si vous voulez un résultat booléen :

console.log(/^([a-z0-9]{5,})$/.test('xyz1')); // false

console.log(/^([a-z0-9]{5,})$/.test('xyz12')); // true

console.log(/^([a-z0-9]{5,})$/.test('xyz123')); // true

et vous pourriez supprimer les () de votre expression régulière puisque vous n’avez pas besoin de capturer.

Utiliser la méthode test() :

var str = "exemple1";
var re = new RegExp("^([a-z0-9]{5,})$");
if (re.test(str)) {
    console.log("Valid");
} else {
    console.log("Invalid");
}

Vous pouvez aussi utiliser match() :

if (str.match(/^([a-z0-9]{5,})$/)) {
    alert("match!");
}

Mais test() me semble plus rapide.

Utilisez /tonRegex/.test(tonString) si vous voulez seulement savoir si votre chaîne correspond à la regexp.