Незахваћујуће заграде у регуларним изразима JavaScript

Заграде ( ) обављају две функције - груписање симбола и функцију „кармана“. А шта да радимо ако нам треба да групишемо, али да не смештамо у „карман“? За решење таквог проблема осмишљене су специјалне незахваћујуће заграде (?: ) - оне групишу, али не смештају у „карман“.

Пример

У следећем примеру прве заграде су нам потребне за груписање, а друге - за „карман“. Међутим, и једне и друге заграде чувају податке у „карман“:

javascriptlet str = 'abab123';
let res = str.match(/(ab)+([1-9]+)/);

Као резултат, у нашим „карманима“ ће бити следеће:

javascriptconsole.log(res[0]); // исписаће 'abab123'
console.log(res[1]); // исписаће 'ab'
console.log(res[2]); // исписаће '123'

Пример

Хајде да осигурамо да први пар заграда само групише, али да не смешта у „карман“:

javascriptlet str = 'abab123';
let res = str.match(/(?:ab)+([1-9]+)/);

Као резултат, у првом „карману“ ће бити наш број:

javascriptconsole.log(res[1]); // исписаће '123'