RegExp.prototype.test()

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.

Returns

Boolean. true ou 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()

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

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

Specificações

Specificações Status Comentário
ECMAScript 3rd Edition (ECMA-262) Padrão Definição inicial. Implementado no JavaScript 1.2.
ECMAScript 5.1 (ECMA-262)
The definition of 'RegExp.test' in that specification.
Padrão
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'RegExp.test' in that specification.
Padrão

Compatibilidade com Browser

Estamos convertendo nossos dados de compatibilidade para o formato JSON. Esta tabela de compatibilidade ainda usa o formato antigo, pois ainda não convertemos os dados que ela contém. Descubra como você pode ajudar!
Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support (Yes) (Yes) (Yes) (Yes) (Yes)
Feature Android Chrome para Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support (Yes) (Yes) (Yes) (Yes) (Yes) (Yes)

Gecko-specific notes

A priori no Grecko 8.0 (Firefox 8.0 / Thunderbird 8.0 / SeaMonkey 2.5), 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