Metoda JavaScript String match () zwraca wynik dopasowania ciągu do wyrażenia regularnego.
Składnia match()
metody to:
str.match(regexp)
Tutaj str jest ciągiem.
match () Parametry
match()
Sposób odbywa się:
- regexp - obiekt wyrażenia regularnego (Argument jest niejawnie konwertowany na,
RegExp
jeśli nie jestRegExp
obiektem)
Uwaga: jeśli nie podasz żadnych parametrów, match()
zwraca ("")
.
Wartość zwracana z match ()
- Zwraca element
Array
zawierający dopasowania, po jednym elemencie dla każdego dopasowania. - Zwraca,
null
jeśli nie znaleziono dopasowania.
Przykład 1: użycie funkcji match ()
const string = "I am learning JavaScript not Java."; const re = /Java/; let result = string.match(re); console.log("Result of matching /Java/ :"); console.log(result); const re1 = /Java/g; let result1 = string.match(re1); console.log("Result of matching /Java/ with g flag:") console.log(result1);
Wynik
Wynik dopasowania / Java /: ('Java', indeks: 14, dane wejściowe: 'Uczę się języka JavaScript, a nie Javy.', Grupy: nieokreślone) Wynik dopasowania / Java / z flagą g: ('Java', 'Java' )
Tutaj widzimy, że bez użycia g
flagi otrzymamy w rezultacie tylko pierwsze dopasowanie, ale ze szczegółowymi informacjami, takimi jak indeks, dane wejściowe i grupy.
Uwaga : jeśli wyrażenie regularne nie zawiera g
flagi, str.match()
zwróci tylko pierwsze dopasowanie podobne do RegExp.exec()
. Zwracany przedmiot będzie miał również następujące dodatkowe właściwości:
groups
- Obiekt nazwanych grup przechwytywania z kluczami jako nazwami i wartościami jako przechwycone dopasowania.index
- indeks wyszukiwania, w którym znaleziono wynik.input
- kopia wyszukiwanego ciągu.
Przykład 2: Dopasowywanie sekcji w ciągu
const string = "My name is Albert. YOUR NAME is Soyuj."; // expression matches case-insensitive "name is"+ any alphabets till period (.) const re = /namesiss(a-zA-Z)+./gi; let result = string.match(re); console.log(result); // ( 'name is Albert.', 'NAME is Soyuj.' ) // using named capturing groups const re1 = /namesiss(?(a-zA-Z)+)./i; let found = string.match(re1); console.log(found.groups); // (name: "Albert")
Wynik
('imię to Albert.', 'NAZWA to Soyuj.') (imię: "Albert")
Tutaj użyliśmy wyrażenia regularnego, aby dopasować określoną część ciągu. Możemy również przechwytywać określone grupy w meczu, używając składni pokazanej powyżej.
Zalecana literatura : JavaScript String matchAll ()