⊗jsSpRENPB 132 of 294 menu

Μη-αποθηκευτικές παρενθέσεις στις κανονικές εκφράσεις JavaScript

Οι παρενθέσεις ( ) εκτελούν δύο λειτουργίες - ομαδοποίηση χαρακτήρων και λειτουργία "πακέτου". Και τι κάνουμε αν χρειαζόμαστε ομαδοποίηση, αλλά δεν θέλουμε να το βάλουμε σε "πακέτο"; Για την επίλυση αυτού του προβλήματος έχουν σχεδιαστεί ειδικές μη-αποθηκευτικές παρενθέσεις (?: ) - ομαδοποιούν, αλλά δεν τοποθετούν σε "πακέτο".

Παράδειγμα

Στο επόμενο παράδειγμα, οι πρώτες παρενθέσεις χρειαζόμαστε για ομαδοποίηση, και οι δεύτερες - για "πακέτο". Ωστόσο, και οι δύο παρενθέσεις αποθηκεύουν δεδομένα στο "πακέτο":

let str = 'abab123'; let res = str.match(/(ab)+([1-9]+)/);

Σαν αποτέλεσμα, στα "πακέτα" μας θα έχουμε τα εξής:

console.log(res[0]); // θα εμφανίσει 'abab123' console.log(res[1]); // θα εμφανίσει 'ab' console.log(res[2]); // θα εμφανίσει '123'

Παράδειγμα

Ας κάνουμε έτσι ώστε το πρώτο ζευγάρι παρενθέσεων μόνο να ομαδοποιεί, αλλά να μην τοποθετεί σε "πακέτο":

let str = 'abab123'; let res = str.match(/(?:ab)+([1-9]+)/);

Σαν αποτέλεσμα, στο πρώτο "πακέτο" θα είναι ο αριθμός μας:

console.log(res[1]); // θα εμφανίσει '123'
Ελληνικά
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 για τη λειτουργία του ιστότοπου, την ανάλυση και την εξατομίκευση. Η επεξεργασία των δεδομένων γίνεται σύμφωνα με την Πολιτική Απορρήτου.
αποδοχή όλων ρύθμιση απόρριψη