⊗jsSpREInr 96 of 294 menu

Εισαγωγή στις Κανονικές Εκφράσεις στο JavaScript

Οι κανονικές εκφράσεις είναι εντολές για σύνθετη αναζήτηση και αντικατάσταση (ή απλά αναζήτηση). Επιτρέπουν να κάνουμε πολύ ενδιαφέροντα πράγματα, αλλά, δυστυχώς, είναι αρκετά δύσκολες στην εκμάθηση.

Υπάρχουν διάφορες μέθοδοι JavaScript για εργασία με κανονικές εκφράσεις. Θα αρχίσουμε να γνωρίζουμε με αυτές στο παράδειγμα της replace - είστε ήδη εξοικειωμένοι με αυτή τη μέθοδο: παίρνει ως πρώτη παράμετρο τι να αντικαταστήσει, και ως δεύτερη - με τι να αντικαταστήσει. Και η ίδια η μέθοδος εφαρμόζεται στη συμβολοσειρά, στην οποία γίνεται η αντικατάσταση:

'bab'.replace('a', '!'); // επιστρέφει 'b!b'

Ως πρώτη παράμετρο αυτής της μεθόδου μπορεί να μεταφερθεί όχι απλώς μια συμβολοσειρά, αλλά μια κανονική έκφραση. Μια κανονική έκφραση αντιπροσωπεύει ένα σύνολο εντολών, τοποθετημένες μέσα σε κάθετες /. Αυτές οι κάθετες ονομάζονται οριοθετητές των κανονικών εκφράσεων.

Οι ίδιες οι κανονικές εκφράσεις αποτελούνται από δύο τύπους χαρακτήρων: από αυτούς που δηλώνουν τους εαυτούς τους και από χαρακτήρες-εντολές, που ονομάζονται ειδικοί χαρακτήρες.

Τα γράμματα και οι αριθμοί δηλώνουν τους εαυτούς τους. Στο επόμενο παράδειγμα θα αντικαταστήσουμε με τη βοήθεια κανονικής έκφρασης το γράμμα 'a' με !:

'bab'.replace(/a/, '!'); // επιστρέφει 'b!b'

Ενώ η τελεία είναι ένας ειδικός χαρακτήρας και δηλώνει οποιονδήποτε χαρακτήρα. Στο επόμενο παράδειγμα θα βρούμε μια συμβολοσειρά σύμφωνα με αυτό το μοτίβο: γράμμα 'x', μετά οποιοσδήποτε χαρακτήρας, μετά πάλι γράμμα 'x':

'xax eee'.replace(/x.x/, '!'); // επιστρέφει '! eee'

Μετά τους οριοθετητές μπορεί να γραφτούν τροποποιητές - εντολές που αλλάζουν τις γενικές ιδιότητες της κανονικής έκφρασης. Για παράδειγμα, ο τροποποιητής g ενεργοποιεί τη λειτουργία καθολικής αναζήτησης και αντικατάστασης - χωρίς αυτόν η κανονική βρίσκει μόνο την πρώτη αντιστοίχιση, ενώ με αυτόν - όλες τις αντιστοιχίσεις.

Στο επόμενο παράδειγμα δεν έχει οριστεί τροποποιητής g και η κανονική θα βρει μόνο την πρώτη αντιστοίχιση:

'aab'.replace(/a/, '!'); // επιστρέφει '!ab'

Και τώρα η κανονική θα βρει όλες τις αντιστοιχίσεις:

'aab'.replace(/a/g, '!'); // επιστρέφει '!!b'

Δίνεται συμβολοσειρά:

let str = 'ahb acb aeb aeeb adcb axeb';

Γράψτε μια κανονική έκφραση, που θα βρει τις συμβολοσειρές 'ahb', 'acb', 'aeb' σύμφωνα με το μοτίβο: γράμμα 'a', οποιοσδήποτε χαρακτήρας, γράμμα 'b'.

Δίνεται συμβολοσειρά:

let str = 'aba aca aea abba adca abea';

Γράψτε μια κανονική έκφραση, που θα βρει τις συμβολοσειρές 'abba', 'adca', 'abea' σύμφωνα με το μοτίβο: γράμμα 'a', 2 οποιοιδήποτε χαρακτήρες, γράμμα 'a'.

Δίνεται συμβολοσειρά:

let str = 'aba aca aea abba adca abea';

Γράψτε μια κανονική έκφραση, που θα βρει τις συμβολοσειρές 'abba' και 'abea', χωρίς να πιάσει την 'adca'.

Ελληνικά
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Χρησιμοποιούμε cookie για τη λειτουργία του ιστότοπου, την ανάλυση και την εξατομίκευση. Η επεξεργασία των δεδομένων γίνεται σύμφωνα με την Πολιτική Απορρήτου.
αποδοχή όλων ρύθμιση απόρριψη