Չպահող փակագծերը 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'