Wyszukiwanie ciągów znaków JavaScript

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

Spróbuj sam

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

Spróbuj sam

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

Spróbuj sam

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

Spróbuj sam

lastIndexOf() Metoda wyszukuje wstecz (od końca do początku), co oznacza, że jeśli drugi parametr to 15Jeś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

Spróbuj sam

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

Spróbuj sam

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]

Spróbuj sam

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]}

Spróbuj sam

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

Spróbuj sam

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

Spróbuj sam

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

Spróbuj sam

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

Spróbuj sam

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

Spróbuj sam

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

Spróbuj sam

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.