Η μέθοδος JavaScript String matchAll () επιστρέφει έναν επαναληπτικό των αποτελεσμάτων της αντιστοίχισης μιας συμβολοσειράς με μια κανονική έκφραση.
Η σύνταξη της matchAll()
μεθόδου είναι:
str.matchAll(regexp)
Εδώ, str
είναι μια συμβολοσειρά.
matchAll () Παράμετροι
Η matchAll()
μέθοδος περιλαμβάνει:
- regexp - Ένα αντικείμενο κανονικής έκφρασης (Το επιχείρημα μετατρέπεται σιωπηρά σε
RegExp
αν δεν είναιRegExp
αντικείμενο)
Σημείωση: Εάν το RegExp
αντικείμενο δεν έχει τη /g
σημαία, TypeError
θα αφαιρεθεί.
Τιμή επιστροφής από matchAll ()
- Επιστρέφει έναν επαναληπτικό που περιέχει τους αγώνες, συμπεριλαμβανομένων των ομάδων σύλληψης.
Σημείωση : Κάθε αντικείμενο που επιστρέφεται θα έχει τις ακόλουθες πρόσθετες ιδιότητες:
groups
- Ένα αντικείμενο ονομασμένων ομάδων σύλληψης που έχουν κλειδιά ως ονόματα και τιμές όπως τα καταγεγραμμένα ταιριάζει.index
- Ο δείκτης αναζήτησης όπου βρέθηκε το αποτέλεσμα.input
- Ένα αντίγραφο της συμβολοσειράς αναζήτησης.
Παράδειγμα 1: Χρήση του matchAll ()
const string = "I am learning JavaScript not Java."; const re = /Java(a-z)*/gi; let result = string.matchAll(re); for (match of result) ( console.log(match); )
Παραγωγή
(«JavaScript», ευρετήριο: 14, εισαγωγή: «Μαθαίνω JavaScript όχι Java», ομάδες: undefined) («Java», ευρετήριο: 29, εισαγωγή: «Μαθαίνω JavaScript όχι Java», ομάδες: undefined)
Εδώ, ο επαναλαμβανόμενος επαναληπτής επαναλαμβάνεται με τη χρήση του for… of
βρόχου.
Παράδειγμα 2: Χρήση του matchAll για τη σύλληψη ομάδων
const string = "My name is Albert. YOUR NAME is Soyuj."; // expression matches case-insensitive "name is"+ any alphabets till period (.) // using named capturing groups const re = /namesiss(?(a-zA-Z)+)./gi; let found = string.matchAll(re); for (const match of found)( console.log(`Found "$(match(0))" at index $(match.index). Captured name = $(match.groups('name'))`) )
Παραγωγή
Βρέθηκε "το όνομα είναι Albert." στο ευρετήριο 3. Καταγεγραμμένο όνομα = Albert Βρέθηκε "ΟΝΟΜΑ είναι Soyuj." στο ευρετήριο 24. Καταγεγραμμένο όνομα = Soyuj
Εδώ, χρησιμοποιήσαμε μια κανονική έκφραση για να ταιριάξουμε με ένα συγκεκριμένο τμήμα της συμβολοσειράς. Μπορούμε να συλλάβουμε συγκεκριμένες ομάδες στον αγώνα χρησιμοποιώντας matchAll()
καλύτερα από match()
.
Προτεινόμενη ανάγνωση: Ταίριασμα συμβολοσειράς JavaScript ()