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
indexOfpara localizar texto em strings. - Combine com
substringpara extrair partes específicas. - Use
lastIndexOfpara 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!