String.prototype.search()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since julho de 2015.
O método search() realiza uma busca por uma ocorrência entre uma expressão regular e uma String.
Sintaxe
str.search(regexp)
Parâmetros
Valor retornado
O índice na string do primeiro trecho que satisfaz a expressão regular. Do contrário, o valor -1 será retornado.
Descrição
Quando você quiser saber se um padrão foi encontrado, e também saber seu índice dentro de uma string, use search(). (Se você deseja apenas saber se ele existe, use o método semelhante test() do protótipo RegExp, que retorna um booleano.)
Para obter mais informações (mas em compensação a execução se torna mais lenta), use match() (semelhante ao método exec() da RegExp).
Exemplos
>Usando search()
O exemplo a seguir pesquisa uma string com dois objetos regexp diferentes para mostrar uma pesquisa bem-sucedida (valor positivo) vs. uma pesquisa mal-sucedida (-1).
let str = "hey JudE";
let re = /[A-Z]/g;
let reDot = /[.]/g;
console.log(str.search(re)); // retorna 4, que é o índice da primeira letra maiúscula "J"
console.log(str.search(reDot)); // retorna -1 pois não conseguiu encontrar o ponto "."
Especificações
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-string.prototype.search> |
Navegadores compatíveis
Loading…
Notas específicas para a engine Gecko
- Antes do Gecko 8.0,
search()foi implementado incorretamente. Quando era chamadosem parâmetros ou comundefined, ele buscava pela string 'undefined', ao invés de buscar pela string vazia. Isto foi corrigido. Agora'a'.search()e'a'.search(undefined)corretamente retornam 0. - A partir do Gecko 39, o argumento não-padrão
flagsestá defasado (deprecated) e dispara um aviso no console (Erro do Firefox 1142351). - A partir do Gecko 47, o argumento não-padrão
flagsnão é mais suportado em builds non-release e em breve será removido inteiramente (Erro do Firefox 1245801). - A partir do Gecko 49, o argumento não-padrão
flagsnão é mais suportado (Erro do Firefox 1108382).