MDN wants to talk to developers like you: https://qsurvey.mozilla.com/s3/8d22564490d8

String.prototype.indexOf()

O método indexOf() retorna o indíce da primeira ocurrência do valor especificado no objecto String, começando a procura a partir de fromIndex. Retorna -1 se o valor não for encontrado.

Sintaxe

str.indexOf(searchValue[, fromIndex])

Parâmetros

searchValue
Uma string com o valor pelo qual se procura.
fromIndex Optional
O ponto da string a partir do qual a procura deverá começar. Pode ter o valor de um qualquer inteiro. O valor por predefinição é 0. Se o fromIndex < 0 a procura é feita em toda a string (o mesmo que passar o valor 0). Se fromIndex >= str.length, o método retornará -1, exceção feita quando o valor de searchValue é uma string vazia, nesse caso retorna str.length.

Descrição

Os caractéres numa string são indexadas da esquerda para a direita. O índice do primeira caractér é 0, e o índice do último caractér da string, chamado de stringName, é stringName.length - 1.

'Blue Whale'.indexOf('Blue');     // retorna  0
'Blue Whale'.indexOf('Blute');    // retorna -1
'Blue Whale'.indexOf('Whale', 0); // retorna  5
'Blue Whale'.indexOf('Whale', 5); // retorna  5
'Blue Whale'.indexOf('', 9);      // retorna  9
'Blue Whale'.indexOf('', 10);     // retorna 10
'Blue Whale'.indexOf('', 11);     // retorna 10

Case-sensitivity

O método indexOf() é sensível a maiúsculas e minúsculas. Por exemplo, a seguinte expressão retorna -1:

'Blue Whale'.indexOf('blue'); // retorna -1

Verificando ocorrências

Repara que '0' não é avaliado como true e '-1' não é avaliado como false. Sendo assim, a forma correta de verificar se uma string específica existe dentro de outra string deverá ser:

'Blue Whale'.indexOf('Blue') !== -1; // true
'Blue Whale'.indexOf('Bloe') !== -1; // false

Exemplos

Usando indexOf() e lastIndexOf()

O seguinte exemplo usa indexOf() e lastIndexOf() para localizar valores na string "Brave new world".

var anyString = 'Brave new world';

console.log('O índice do primeiro w desde o início é ' + anyString.indexOf('w'));
// imprime 8
console.log('O índice do primeiro w desde o fim é ' + anyString.lastIndexOf('w'));
// imprime 10

console.log('O índice de "new" desde o início é ' + anyString.indexOf('new'));
// imprime 6
console.log('O índice de "new" desde o fim é ' + anyString.lastIndexOf('new'));
// imprime 6

indexOf() e sensibilidade a maiúsculas e minúsculas

O seguinte exemplo define duas variáveis do tipo string. As variáveis contêm a mesma string exceto o facto da segunda string conter as todas as letras maiúsculas. O primeiro método console.log() apresenta 19. Mas porque o método indexOf() é sensível a maiúsculas e minúsculas, a string "cheddar" não é encontrada em myCapString, logo o segundo método console.log() apresenta -1.

var myString    = 'brie, pepper jack, cheddar';
var myCapString = 'Brie, Pepper Jack, Cheddar';

console.log('myString.indexOf("cheddar") é ' + myString.indexOf('cheddar'));
// imprime 19
console.log('myCapString.indexOf("cheddar") é ' + myCapString.indexOf('cheddar'));
// imprime -1

Usando indexOf() para contar as ocorrências de uma letra numa string

O seguinte exemplo atribuí à variável count o número de ocorrências da letra 'e' na string str:

var str = 'To be, or not to be, that is the question.';
var count = 0;
var pos = str.indexOf('e');

while (pos !== -1) {
  count++;
  pos = str.indexOf('e', pos + 1);
}

console.log(count); // imprime 4

Especificações

Especificação Estado Comentário
ECMAScript 1st Edition (ECMA-262) Standard Definição inicial.
ECMAScript 5.1 (ECMA-262)
The definition of 'String.prototype.indexOf' in that specification.
Standard  
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'String.prototype.indexOf' in that specification.
Standard  

Compatibilidade dos browsers

Funcionalidade Chrome Firefox (Gecko) Internet Explorer Opera Safari
Suporte básico (Yes) (Yes) (Yes) (Yes) (Yes)
Funcionalidade Android Chrome para Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Suporte básico (Yes) (Yes) (Yes) (Yes) (Yes) (Yes)

Ver também

Etiquetas do documento e contribuidores

 Contribuidores para esta página: Redeagle48
 Última atualização por: Redeagle48,