RegExp.prototype.test()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

O método test() executa uma busca por uma correspondência entre uma expressão regular e uma string. Retorna true ou false.

Sintaxe

regexObj.test(str)

Parâmetros

str

A string que confrontará a expressão regular. Todos os valores são convertidos em strings, portanto, omiti-lo ou passar undefined faz com que test() procure a string "undefined".

Retorno

Boolean.

true se a string str corresponde com o que está descrito na expressão regular.

Caso contrário, retorna false.

Descrição

Use test() sempre que você quiser saber se um padrão está dentro de uma string( similar ao método String.prototype.search()); Para mais informações (porém com execução mais lenta) use o método exec() (similar ao método String.prototype.match()). Assim como exec() (ou em combinação com ele), test() quando chamado várias vezes dentro da mesma instância de expressão regular irá avançar seu ponteiro para a correspondência anterior.

Exemplos

Usando test()

Exemplo simples que verifica se "hello" está presente no início de uma string, retornando um booleano como resultado.

const str = 'hello world!';
const result = /^hello/.test(str);

console.log(result); // true

O exemplo a seguir mostra uma mensagem dependendo do sucesso do teste.

js
function testinput(re, str) {
  var midstring;
  if (re.test(str)) {
    midstring = " Contém ";
  } else {
    midstring = " não contém ";
  }
  console.log(str + midstring + re.source);
}

Especificações

Specification
ECMAScript Language Specification
# sec-regexp.prototype.test

Compatibilidade com navegadores

BCD tables only load in the browser

Gecko-specific notes

A priori no Grecko 8.0, test() foi implementado incorretamente; quando chamado sem parâmetros, ele encontrária uma correspondência com o valor de entrada anterior (RegExp.input property) no lugar de uma correspondência com "undefined". Isso está conrrigido; agora /undefined/.test() resultará em true, no lugar de um erro.

See also