Como pegar o índice de um trecho ou caractere no JavaScript
O método indexOf
é usado para encontrar a posição de um texto em uma string. Ele retorna o índice da primeira ocorrência ou -1
se não encontrar.
Sintaxe básica
A sintaxe básica do indexOf
é:
string.indexOf(texto, posicaoInicial)
Exemplo:
let texto = "JavaScript é incrível"
console.log(texto.indexOf("é")) // 11
console.log(texto.indexOf("Python")) // -1
Pesquisar a partir de uma posição
Você pode especificar a posição inicial da pesquisa.
Exemplo:
let texto = "JavaScript é incrível"
console.log(texto.indexOf("a", 3)) // 3
Usando lastIndexOf
O método lastIndexOf
é semelhante ao indexOf
, mas ele retorna o índice da última ocorrência de um texto em uma string. Se não encontrar, retorna -1
.
Sintaxe:
string.lastIndexOf(texto, posicaoInicial)
Exemplo:
let texto = "JavaScript é incrível e JavaScript é poderoso"
console.log(texto.lastIndexOf("JavaScript")) // 28
console.log(texto.lastIndexOf("Python")) // -1
Você também pode especificar a posição inicial para pesquisar de trás para frente.
Exemplo:
let texto = "JavaScript é incrível e JavaScript é poderoso"
console.log(texto.lastIndexOf("JavaScript", 20)) // 0
Problema ao usar indexOf com if
Um erro comum ao usar indexOf
é verificar diretamente em uma condição if
. Como indexOf
retorna -1
quando o texto não é encontrado, isso pode ser interpretado como true
em algumas situações inesperadas.
Exemplo problemático:
let texto = "JavaScript é incrível"
if (texto.indexOf("Python")) {
console.log("Texto encontrado!")
}
else {
console.log("Texto não encontrado!")
}
// Saída: "Texto encontrado!" (mesmo que "Python" não esteja presente)
Solução:
Para evitar esse problema, compare explicitamente o retorno de indexOf
com -1
:
let texto = "JavaScript é incrível"
if (texto.indexOf("Python") !== -1) {
console.log("Texto encontrado!")
}
else {
console.log("Texto não encontrado!")
}
// Saída: "Texto não encontrado!"
Sempre verifique o retorno de indexOf
para garantir que o comportamento seja o esperado.
Dicas práticas
- Use
indexOf
para localizar texto em strings. - Combine com
substring
para extrair partes específicas. - Use
lastIndexOf
para encontrar a última ocorrência de um texto.
O método indexOf
e lastIndexOf
são úteis para manipulação de strings. Experimente usá-los!