Nesaugantys skliaustai JavaScript reguliariosiose išraiškose
Skliaustai ( ) atlieka dvi funkcijas -
symbolių grupavimą ir kabliuko funkciją. O
ką daryti, jei mums reikia sugrupuoti,
bet į kabliuką nedėti?
Šiai problemai spręsti buvo sukurti specialūs
nesaugantys skliaustai (?: )
- jie grupuoja, bet nededa į kabliuką.
Pavyzdys
Šiame pavyzdyje pirmieji skliaustai mums reikalingi grupavimui, o antrieji - kabliukui. Tačiau ir vieni, ir kiti skliaustai išsaugo duomenis į kabliuką:
let str = 'abab123';
let res = str.match(/(ab)+([1-9]+)/);
Rezultate mūsų kabliukuose bus taip:
console.log(res[0]); // išves 'abab123'
console.log(res[1]); // išves 'ab'
console.log(res[2]); // išves '123'
Pavyzdys
Padarykime taip, kad pirmoji skliaustų pora tik grupuotų, bet nedėtų į kabliuką:
let str = 'abab123';
let res = str.match(/(?:ab)+([1-9]+)/);
Rezultate pirmame kabliuke bus mūsų skaičius:
console.log(res[1]); // išves '123'