Verifique se uma string corresponde a uma expressão regular em 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,})$ 

Idealmente, seria uma expressão que retornasse verdadeiro ou falso.

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

   

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

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

… e você pode remover o () de seu regexp, já que não há necessidade de captura.

Use o método test() :

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

Você pode usar match() também:

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

Mas o test() parece ser mais rápido, como você pode ler aqui .

Diferença importante entre match() e test() :

match() funciona apenas com strings, mas test() também funciona com inteiros.

 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 

Use /youregexp/.test(yourString) se você quiser apenas saber se sua string corresponde ao regexp.

Aqui está um exemplo que procura por certas tags HTML, então está claro que /someregex/.test() retorna um booleano:

 if(/(span|h[0-6]|li|a)/i.test("h3")) alert('true'); 
  let str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; let regexp = /[ad]/gi; console.log(str.match(regexp));