1042 votes

JavaScript : vérifier une chaîne correspond à une expression régulière ?

Je veux utiliser JavaScript (ou 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 reviendrait vraie ou fausse.

Je suis un débutant JavaScript, est-ce que match() fait ce dont j'ai besoin? Il semble vérifier si une partie d'une chaîne correspond à une regex, pas tout.

1619voto

user113716 Points 143363

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

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

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

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

... et vous pouvez supprimer le () de votre expression rationnelle puisque vous n'avez pas besoin d'une capture.

132voto

pmrotule Points 144

Vous pouvez aussi utiliser match ():

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

Mais test () semble être plus rapide que vous pouvez le lire ici: http://stackoverflow.com/a/10940138/1895428

61voto

user278064 Points 5193

Utilisez la méthode /youregexp/.test() si vous voulez seulement utiliser kwow si votre expression rationnelle correspond à la chaîne.

17voto

user2449231 Points 79

Voici un exemple qui recherche certaines balises HTML. Il est donc clair que /someregex/.test() renvoie un booléen:

 var str = "h3";

if( /(span|h[0-6]|li|a)/i.test(str) )
    {
        alert('true');
    }
 

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