Η μέθοδος JavaScript String match () επιστρέφει το αποτέλεσμα αντιστοίχισης μιας συμβολοσειράς με μια κανονική έκφραση.
Η σύνταξη της match()
μεθόδου είναι:
str.match(regexp)
Εδώ, το str είναι μια συμβολοσειρά.
match () Παράμετροι
Η match()
μέθοδος περιλαμβάνει:
- regexp - Ένα αντικείμενο κανονικής έκφρασης (Το επιχείρημα μετατρέπεται σιωπηρά σε
RegExp
αν δεν είναιRegExp
αντικείμενο)
Σημείωση: Εάν δεν δώσετε καμία παράμετρο, match()
επιστρέφει ("")
.
Επιστροφή αξία από τον αγώνα ()
- Επιστρέφει ένα που
Array
περιέχει τους αγώνες, ένα στοιχείο για κάθε αγώνα. - Επιστρέφει
null
εάν δεν βρεθεί αγώνας.
Παράδειγμα 1: Χρήση αγώνα ()
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);
Παραγωγή
Αποτέλεσμα αντιστοίχισης / Java /: («Java», ευρετήριο: 14, εισαγωγή: «Μαθαίνω JavaScript όχι Java», ομάδες: undefined) Αποτέλεσμα αντιστοίχισης / Java / με g flag: («Java», «Java» )
Εδώ, μπορούμε να δούμε ότι χωρίς τη χρήση της g
σημαίας, έχουμε ως αποτέλεσμα μόνο τον πρώτο αγώνα, αλλά με λεπτομερείς πληροφορίες, όπως ευρετήριο, εισαγωγή και ομάδες.
Σημείωση : Εάν η κανονική έκφραση δεν περιλαμβάνει τη g
σημαία, str.match()
θα επιστρέψει μόνο το πρώτο ταίριασμα παρόμοιο με αυτό RegExp.exec()
. Το επιστρεφόμενο αντικείμενο θα έχει επίσης τις ακόλουθες πρόσθετες ιδιότητες:
groups
- Ένα αντικείμενο ονομασμένων ομάδων σύλληψης που έχουν κλειδιά ως ονόματα και τιμές όπως τα καταγεγραμμένα ταιριάζει.index
- Ο δείκτης αναζήτησης όπου βρέθηκε το αποτέλεσμα.input
- Ένα αντίγραφο της συμβολοσειράς αναζήτησης.
Παράδειγμα 2: Αντιστοίχιση ενοτήτων σε συμβολοσειρά
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")
Παραγωγή
('το όνομα είναι Albert.', 'ΟΝΟΜΑ είναι Soyuj.') (όνομα: "Albert")
Εδώ, χρησιμοποιήσαμε μια κανονική έκφραση για να ταιριάξουμε με ένα συγκεκριμένο τμήμα της συμβολοσειράς. Μπορούμε επίσης να συλλάβουμε συγκεκριμένες ομάδες στον αγώνα χρησιμοποιώντας τη σύνταξη όπως φαίνεται παραπάνω.
Προτεινόμενη ανάγνωση: Ταιριάζει με συμβολοσειρά JavaScriptΌλα