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