Dopasowanie ciągu JavaScript ()

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, RegExpjeśli nie jest RegExpobiektem)

Uwaga: jeśli nie podasz żadnych parametrów, match()zwraca ("").

Wartość zwracana z match ()

  • Zwraca element Arrayzawierający dopasowania, po jednym elemencie dla każdego dopasowania.
  • Zwraca, nulljeś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 gflagi 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 gflagi, 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 ()

Interesujące artykuły...