Como pegar o índice de um trecho ou caractere no JavaScript

Textos e strings / Tutorial 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

  1. Use indexOf para localizar texto em strings.
  2. Combine com substring para extrair partes específicas.
  3. 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!