Ταίριασμα Javascript String All ()

Η μέθοδος 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 ()

ενδιαφέροντα άρθρα...