--- title: String.prototype.search() slug: Web/JavaScript/Reference/Global_Objects/String/search tags: - Expressões Regulares - JavaScript - Prototipo - Referencia - String - metodo - search() translation_of: Web/JavaScript/Reference/Global_Objects/String/search ---
O método search()
realiza uma busca por uma ocorrência entre uma expressão regular e uma {{jsxref ("String")}}.
str.search(regexp)
regexp
obj
for passado como parâmetro e não for do tipo RegExp
, ele será implicitamente convertido para uma {{jsxref("RegExp")}} através da instrução new RegExp(obj)
.O índice na string do primeiro trecho que satisfaz a expressão regular. Do contrário, o valor -1
será retornado.
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 {{jsxref ("RegExp.prototype.test()", "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 {{jsxref ("String.prototype.match()", "match()")}} (semelhante ao método {{jsxref ("RegExp.prototype.exec()" , "exec()")}} da RegExp).
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 "."
Specificação | Status | Comentário(s) |
---|---|---|
{{SpecName('ES3')}} | {{Spec2('ES3')}} | Definição inicial. Implementado no JavaScript 1.2. |
{{SpecName('ES5.1', '#sec-15.5.4.12', 'String.prototype.search')}} | {{Spec2('ES5.1')}} | |
{{SpecName('ES6', '#sec-string.prototype.search', 'String.prototype.search')}} | {{Spec2('ES6')}} | |
{{SpecName('ESDraft', '#sec-string.prototype.search', 'String.prototype.search')}} | {{Spec2('ESDraft')}} |
Feature | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
Suporte básico | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |
Feature | Android | Chrome for Android | Edge | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|---|
Suporte básico | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |
search()
foi implementado incorretamente. Quando era chamadosem parâmetros ou com {{jsxref("undefined")}}, 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.flags
está defasado (deprecated) e dispara um aviso no console ({{bug(1142351)}}).flags
não é mais suportado em builds non-release e em breve será removido inteiramente ({{bug(1245801)}}).flags
não é mais suportado ({{bug(1108382)}}).