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' чыгарат