Незахваћујуће заграде у регуларним изразима 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'