Verificar se uma cadeia corresponde a um regex no JS

Eu quero usar JavaScript (pode ser com jQuery) para fazer alguma validação do lado do cliente para verificar se uma string corresponde ao regex:

^([a-z0-9]{5,})$

O ideal seria que fosse uma expressão que retornasse verdadeiro ou falso.

I'sou um novato em JavaScript, faz o que eu preciso? Parece verificar se parte de uma string corresponde a um regex, não a coisa toda.

Solução

Utilize regex.test() se tudo o que você quer é um resultado booleano:

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

...e você poderia remover a () da sua regexp, uma vez que você não tem necessidade de uma captura.

Comentários (6)

Utilize /youregexp/.test(yourString) se você só quer saber se a sua string corresponde à regexp.

Comentários (0)

Aqui está um exemplo que procura por certas tags HTML para que fique claro que /someregex/.test() retorna um booleano:

if(/(span|h[0-6]|li|a)/i.test("h3")) alert('true');
Comentários (0)