De JavaScript String match () - methode retourneert het resultaat van het matchen van een string met een reguliere expressie.
De syntaxis van de match()
methode is:
str.match(regexp)
Hier is str een string.
match () Parameters
De match()
methode omvat:
- regexp - Een reguliere expressie-object (argument wordt impliciet geconverteerd naar
RegExp
als het een niet-RegExp
object is)
Opmerking: als u geen parameters opgeeft, match()
retourneert ("")
.
Retourwaarde van match ()
- Retourneert een
Array
met de overeenkomsten, één item voor elke overeenkomst. - Retourneert
null
als er geen overeenkomst is gevonden.
Voorbeeld 1: match () gebruiken
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);
Uitvoer
Resultaat van matching / Java /: ('Java', index: 14, invoer: 'Ik leer JavaScript, niet Java.', Groups: undefined) Resultaat van matching / Java / met g-vlag: ('Java', 'Java' )
Hier kunnen we zien dat zonder de g
vlag te gebruiken, we alleen de eerste overeenkomst als resultaat krijgen, maar met gedetailleerde informatie zoals index, invoer en groepen.
Opmerking : als de reguliere expressie de g
vlag niet bevat , str.match()
retourneert alleen de eerste overeenkomst vergelijkbaar met RegExp.exec()
. Het geretourneerde artikel heeft ook de volgende aanvullende eigenschappen:
groups
- Een object van benoemde vastleggende groepen met sleutels als de namen en waarden als de vastgelegde overeenkomsten.index
- De zoekindex waarin het resultaat is gevonden.input
- Een kopie van de zoekterm.
Voorbeeld 2: overeenkomende secties in string
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")
Uitvoer
('naam is Albert.', 'NAAM is Soyuj.') (naam: "Albert")
Hier hebben we een reguliere expressie gebruikt om een bepaald gedeelte van de string te matchen. We kunnen ook bepaalde groepen in de wedstrijd vastleggen met behulp van de syntaxis zoals hierboven weergegeven.
Aanbevolen literatuur: JavaScript String matchAll ()