Kllapat që nuk ruajnë në regex JavaScript
Kllapat ( ) kryejnë dy funksione -
grupimin e karaktereve dhe funksionin e xhepit. Por
çfarë duhet bërë nëse ne kemi nevojë të grupojmë,
por të mos vendosim në xhep?
Për zgjidhjen e një problemi të tillë janë krijuar
kllapat që nuk ruajnë (?: )
- ato grupojnë, por nuk vendosin në xhep.
Shembull
Në shembullin vijues, kllapat e para na duhen për grupim, ndërsa të dytat - për xhep. Megjithatë, të dy llojet e kllapave ruajnë të dhëna në xhep:
let str = 'abab123';
let res = str.match(/(ab)+([1-9]+)/);
Si rezultat, në xhepat tanë do të kemi sa vijon:
console.log(res[0]); // do të shfaqë 'abab123'
console.log(res[1]); // do të shfaqë 'ab'
console.log(res[2]); // do të shfaqë '123'
Shembull
Le t'i bëjmë që çifti i parë i kllapave të grupojë vetëm, por të mos vendosë në xhep:
let str = 'abab123';
let res = str.match(/(?:ab)+([1-9]+)/);
Si rezultat, në xhepin e parë do të jetë numri ynë:
console.log(res[1]); // do të shfaqë '123'