String.prototype.indexOf / lastIndexOf în JavaScript

Șiruri de caractere Toate browserele, Node.js

Returnează poziția primei (sau ultimei) apariții a unui text, ori -1 dacă nu apare.

Sintaxă
sir.indexOf(cauta, deLa)
sir.lastIndexOf(cauta, panaLa)

Ce face String.prototype.indexOf / lastIndexOf

indexOf caută textul de la stânga la dreapta și returnează poziția primei apariții. lastIndexOf caută de la dreapta la stânga și returnează poziția ultimei apariții. Dacă textul nu apare, ambele returnează -1.

Pentru o simplă verificare „conține sau nu” folosește includes, care se citește mai ușor.

Parametri

Parametru Descriere
cauta Textul căutat.
deLa / panaLa Opțional. indexOf: poziția de la care începe căutarea; lastIndexOf: ultima poziție luată în calcul.

Ce returnează

Poziția găsită (număr de la 0) sau -1.

Exemple

Exemplul 1: Prima și ultima apariție

const text = "mere, pere, mere, prune";

console.log(text.indexOf("mere"));
console.log(text.lastIndexOf("mere"));
console.log(text.indexOf("mere", 1));
console.log(text.indexOf("caise"));

Rezultat

0
12
12
-1

Exemplul 2: Numele și extensia unui fișier

const fisier = "raport.anual.2026.xlsx";
const punct = fisier.lastIndexOf(".");

console.log(fisier.slice(0, punct));
console.log(fisier.slice(punct + 1));

Rezultat

raport.anual.2026
xlsx

Exemplul 3: Toate pozițiile unui cuvânt

const text = "da, nu, da, poate, da";
const pozitii = [];
let poz = text.indexOf("da");

while (poz !== -1) {
  pozitii.push(poz);
  poz = text.indexOf("da", poz + 1);
}
console.log(pozitii);

Rezultat

[ 0, 8, 19 ]

Greșeli frecvente

  • Scrii if (text.indexOf("x")). Când textul este la început, poziția este 0, care în if înseamnă fals, iar când lipsește, -1 înseamnă adevărat. Compară cu !== -1 sau folosește includes.

Comenzi înrudite

  • includes: Verifică dacă un text conține alt text sau dacă un tablou conține o valoare.
  • slice: Extrage o bucată dintr-un text sau dintr-un tablou, fără să modifice originalul.
  • Array.prototype.indexOf / lastIndexOf: Returnează poziția primei (sau ultimei) apariții a unei valori în tablou, ori -1.