Wyszukiwanie ciągów znaków JavaScript
- Poprzednia strona Metody ciągów znaków JS
- Następna strona JS szablony ciągów znaków
Metoda JavaScript używana do wyszukiwania łańcucha znaków:
- String.indexOf()
- String.lastIndexOf()
- String.startsWith()
- String.endsWith()
String.indexOf()
indexOf()
Metoda zwraca określony tekst w łańcuchu znakówPierwszy razWystępuje (pozycja) indeks:
Przykład
let str = "Please locate where 'locate' occurs!"; str.indexOf("locate") // zwraca 7
JavaScript liczy pozycje od zera.
0 jest pierwszą pozycją w łańcuchu znaków, 1 drugą, 2 trzecią itd.
String.lastIndexOf()
lastIndexOf()
Metoda zwraca pozycję ostatniego wystąpienia określonego tekstu w ciągu:
Przykład
let str = "Please locate where 'locate' occurs!"; str.lastIndexOf("locate") // zwraca 21
Jeśli nie znaleziono tekstu:indexOf()
i lastIndexOf()
Zawsze zwracają -1:
Przykład
let str = "Please locate where 'locate' occurs!"; str.lastIndexOf("Bill") // zwraca -1
Te dwie metody przyjmują drugi parametr jako pozycję startową wyszukiwania:
Przykład
let str = "Please locate where 'locate' occurs!"; str.indexOf("locate", 15) // zwraca 21
lastIndexOf()
Metoda wyszukuje wstecz (od końca do początku), co oznacza, że jeśli drugi parametr to 15
Jeśli drugi parametr to 15, zaczyna wyszukiwanie od pozycji 15 do początku ciągu.
Przykład
let str = "Please locate where 'locate' occurs!"; str.lastIndexOf("locate", 15) // zwraca 7
String.search()
search()
Metoda wyszukuje określone wartości w ciągu i zwraca pozycję dopasowania:
Przykład
let str = "Please locate where 'locate' occurs!"; str.search("locate") // zwraca 7
Czy zauważyłeś?
indexOf()
i search()
Czy te dwie metody są równe?
Czy przyjmują te same parametry i zwracają te same wartości?
Te dwie metody są różne. Różnice są następujące:
search()
Metoda nie może przyjąć drugiego parametru pozycji startowej.indexOf()
Metoda nie może przyjąć silnego parametru wyszukiwania (wyrażenia regularnego).
Dowiedz się więcej o wyrażeniach regularnych w przyszłych rozdziałach.
String.match()
Metoda match() wyszukuje dopasowania w ciągu według wyrażenia regularnego i zwraca je jako obiekt Array.
Przykład 1
Szukaj "ain" w ciągu:
let text = "The rain in POLAND stays mainly in the plain"; text.match(/ain/g) // zwraca tablicę [ain,ain,ain]
Dowiedz się więcej o wyrażeniach regularnych w rozdziale JS RegExp.
Jeśli wyrażenie regularne nie zawiera modyfikatora g (wykonuje globalne wyszukiwanie), metoda match() zwróci tylko pierwsze dopasowanie w ciągu.
Gramatyka
string.match(regexp)
regexp | Wymagane. Wartość do wyszukiwania, wyrażenie regularne. |
Zwraca: | Tablica, zawierająca wyniki dopasowania, każdy element odpowiada projektowi, jeśli nie znaleziono dopasowania, to null. |
Przykład 2
Wykonaj globalne wyszukiwanie "ain", niezależnie od wielkości liter:
let text = "The rain in POLAND stays mainly in the plain"; text.match(/ain/gi) // Zwraca tablicę [ain, AIN, ain, ain]}
String.includes()
Jeśli ciąg znaków zawiera określona wartość, toincludes()
Metoda zwraca true.
Przykład
let text = "Hello world, welcome to the universe."; text.includes("world") // Zwraca true
Wspierane przeglądarki
Internet Explorer nie obsługuje String.includes().
Chrome | IE | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 41 | Edge 12 | Firefox 40 | Safari 9 | Opera 28 |
Marzec 2015 roku | Lipiec 2015 roku | Sierpień 2015 roku | Październik 2015 roku | Marzec 2015 roku |
Gramatyka
string.includes(searchvalue, start)
searchvalue | Wymagane. Wartość ciągła do wyszukiwania. |
start | Opcjonalne. Domyślnie 0. Początkowa pozycja wyszukiwania. |
Zwraca: | Jeśli ciąg znaków zawiera tę wartość, to zwraca true , w przeciwnym razie zwraca false . |
Wersja JS: | ES6 (2015) |
Sprawdź, czy ciąg znaków zawiera "world", zaczynając od pozycji 12:
let text = "Hello world, welcome to the universe."; text.includes("world", 12) // Zwraca false
String.startsWith()
Jeśli ciąg znaków zaczyna się od określonej wartości, to startsWith()
Metoda zwraca true
, w przeciwnym razie zwraca false
:
Przykład
let text = "Hello world, welcome to the universe."; text.startsWith("Hello") // Zwraca true
Gramatyka
string.startsWith(searchvalue, start)
Wartość parametru
Parametr | Opis |
---|---|
searchvalue | Wymagane. Wartość do wyszukiwania. |
start | Opcjonalne. Domyślnie 0. Początkowa pozycja wyszukiwania. |
Przykład
let text = "Hello world, welcome to the universe."; text.startsWith("world") // Zwraca false
let text = "Hello world, welcome to the universe."; text.startsWith("world", 5) // Zwraca false
let text = "Hello world, welcome to the universe."; text.startsWith("world", 6) // Zwraca true
Komentarz:startsWith()
Metoda rozróżnia wielkość liter.
Internet Explorer nie obsługuje startsWith()
Metoda.
Pierwsza w pełni wspierana wersja przeglądarki to:
Chrome | IE | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 41 | Edge 12 | Firefox 17 | Safari 9 | Opera 28 |
Marzec 2015 roku | Lipiec 2015 roku | Sierpień 2015 roku | Październik 2015 roku | Marzec 2015 roku |
String.endsWith()
Jeśli ciąg znaków kończy się na określoną wartość, to endsWith()
Metoda zwraca true
, w przeciwnym razie zwraca false
:
Przykład
Sprawdź, czy ciąg znaków kończy się na "Gates":
var text = "Bill Gates"; text.endsWith("Gates") // Zwraca true
Gramatyka
string.endsWith(searchvalue, length)
Wartość parametru
Parametr | Opis |
---|---|
searchvalue | Wymagane. Wartość do wyszukiwania. |
length | Opcjonalne. Długość do wyszukiwania. |
Wyszukaj ciąg znaków kończący się "world" na pierwszych 11 znakach:
let text = "Hello world, welcome to the universe."; text.endsWith("world", 11) // Zwraca true
Komentarz:endsWith()
Metoda rozróżnia wielkość liter.
Internet Explorer nie obsługuje endsWith()
Metoda.
Pierwsza wersja przeglądarki obsługująca tę metodę to:
Chrome | IE | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 51 | Edge 15 | Firefox 54 | Safari 10 | Opera 38 |
Maj 2016 roku | Kwiecień 2017 roku | Czerwiec 2017 roku | Wrzesień 2016 roku | Czerwiec 2016 roku |
Pełna wersja referencji ciągów znaków
Dla pełnej wersji prosimy odwiedzić naszą pełną Podręcznik JavaScript String.
Ten podręcznik zawiera opisy i przykłady wszystkich właściwości i metod ciągów znaków.
- Poprzednia strona Metody ciągów znaków JS
- Następna strona JS szablony ciągów znaków