⊗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'
azbnsvuzcuzl