Javascript-strängmatchning ()

Metoden JavaScript String match () returnerar resultatet av att en sträng matchas mot ett reguljärt uttryck.

Syntaxen för match()metoden är:

 str.match(regexp)

Här är str en sträng.

match () Parametrar

Den match()metod tar in:

  • regexp - Ett objekt med reguljärt uttryck (Argumentet omvandlas implicit till RegExpom det är ett icke- RegExpobjekt)

Obs! Om du inte match()anger några parametrar, returnerar du ("").

Returvärde från matchning ()

  • Returnerar en som Arrayinnehåller matchningarna, ett objekt för varje match.
  • Returnerar nullom ingen matchning hittas.

Exempel 1: Använda matchning ()

 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);

Produktion

 Resultat av matchning / Java /: ('Java', index: 14, input: 'Jag lär mig JavaScript inte Java.', Grupper: odefinierad) Resultat av matchning / Java / med g-flagga: ('Java', 'Java' )

Här kan vi se att utan att använda gflaggan får vi bara den första matchningen som ett resultat men med detaljerad information som index, input och grupper.

Obs : Om det reguljära uttrycket inte inkluderar gflaggan, str.match()returneras endast den första matchningen som liknar RegExp.exec(). Det returnerade objektet kommer också att ha följande ytterligare egenskaper:

  • groups - Ett objekt med namngivna fånggrupper med nycklar som namn och värden som de fångade matchningarna.
  • index - Sökindexet där resultatet hittades.
  • input - En kopia av söksträngen.

Exempel 2: Matcha sektioner i sträng

 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")

Produktion

 ('namn är Albert.', 'NAMN är Soyuj.') (namn: "Albert")

Här har vi använt ett reguljärt uttryck för att matcha en viss del av strängen. Vi kan också fånga vissa grupper i matchen med syntaxen som visas ovan.

Rekommenderad läsning: JavaScript String matchAll ()

Intressanta artiklar...