String. prototype. indexOf()
Zwraca indeks pierwszego wystąpienia podanego tekstu w napisie albo -1, gdy go nie ma.
- Zwraca
- Indeks pierwszego wystąpienia (liczba od
0) albo-1, gdy tekstu nie znaleziono. - Zmienia oryginał
- Nie
Przykład
#const text = 'Ucz się HTML, potem CSS, potem JavaScript'
console.log(text.indexOf('HTML'))
console.log(text.indexOf('potem'))
console.log(text.lastIndexOf('potem'))
console.log(text.indexOf('Python'))Definicja i zastosowanie
#Metoda indexOf() szuka fragmentu tekstu i zwraca pozycję jego pierwszego znaku. Indeksy liczą się od 0. Gdy fragmentu nie ma w napisie, wynikiem jest -1, dlatego wynik porównuj z -1, a nie traktuj go jak wartości logicznej.
Drugi argument określa indeks, od którego zaczyna się szukanie, co pozwala znaleźć kolejne wystąpienia w pętli. Siostrzana metoda lastIndexOf() przeszukuje tekst od końca i zwraca pozycję ostatniego wystąpienia.
Gdy potrzebujesz tylko odpowiedzi „jest czy nie ma”, czytelniejsze jest includes(). indexOf() przydaje się wtedy, gdy pozycja jest potrzebna dalej, np. do wycięcia fragmentu przez slice().
Składnia
#string.indexOf(searchString)
string.indexOf(searchString, position)
string.lastIndexOf(searchString)Parametry
#searchString
string
Szukany tekst. Wielkość liter ma znaczenie.position
number, opcjonalny
Indeks, od którego zaczyna się szukanie. Domyślnie0.
Więcej przykładów
#const title = 'JavaScript'
if (title.indexOf('Java')) {
console.log('Znaleziono')
} else {
console.log('Nie znaleziono')
}
console.log(title.indexOf('Java') !== -1)indexOf() zwróciło 0, a zero jest fałszywe, więc warunek trafił do else. Zawsze porównuj wynik z -1 albo użyj includes().
const log = 'ok, błąd, ok, ok, błąd'
let count = 0
let position = log.indexOf('błąd')
while (position !== -1) {
count++
position = log.indexOf('błąd', position + 1)
}
console.log(count)const email = 'ola@example.com'
const at = email.indexOf('@')
console.log(email.slice(0, at))
console.log(email.slice(at + 1))Obsługa przeglądarek
#Szeroko dostępne
Działa we wszystkich nowoczesnych przeglądarkach, także na telefonach. Możesz używać bez obaw.
- Chrome
- Edge
- Firefox
- Safari
Dobre praktyki
#- Nigdy nie sprawdzaj wyniku przez
if (text.indexOf(x)). Fragment znaleziony na samym początku daje0, które jest fałszywe. Porównuj z-1. - Metoda rozróżnia wielkość liter. Aby szukać bez tego rozróżnienia, zamień oba napisy na małe litery.
Powiązane hasła
#- String.prototype.includes()Sprawdza, czy napis zawiera podany fragment tekstu. Zwraca true albo false i rozróżnia wielkość liter.
- String.prototype.slice()Zwraca fragment napisu od indeksu początkowego do końcowego (bez niego). Obsługuje indeksy ujemne.
- String.prototype.match()Dopasowuje napis do wyrażenia regularnego. Zwraca tablicę z dopasowaniem lub wszystkimi dopasowaniami albo null.
- String.prototype.at()Zwraca znak spod podanego indeksu. Ujemne indeksy liczą się od końca, więc at(-1) to ostatni znak.
- Array.prototype.indexOf()Zwraca indeks pierwszego wystąpienia wartości albo -1.
- String.prototype.lastIndexOf()Zwraca indeks ostatniego wystąpienia podanego tekstu w napisie albo -1, gdy go nie ma.
Widzisz błąd albo brakuje przykładu? Napisz do nas.