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));