Nie-bewarende hakies in JavaScript regulêre uitdrukkings

Hakies ( ) vervul twee funksies - groepering van simbole en die funksie van 'n sak. Maar wat om te doen as ons moet groepeer, maar nie in die sak plaas nie? Vir die oplossing van so 'n probleem is spesiale nie-bewarende hakies (?: ) uitgedink - hulle groepeer, maar plaas nie in die sak nie.

Voorbeeld

In die volgende voorbeeld het ons die eerste hakies nodig vir groepering, en die tweede - vir die sak. Albei hakies bewaar egter data in die sak:

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

As gevolg sal die volgende in ons sakke wees:

javascriptconsole.log(res[0]); // sal 'abab123' uitvoer
console.log(res[1]); // sal 'ab' uitvoer
console.log(res[2]); // sal '123' uitvoer

Voorbeeld

Laat ons dit so maak dat die eerste paar hakies slegs groepeer, maar nie in die sak plaas nie:

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

As gevolg sal ons getal in die eerste sak wees:

javascriptconsole.log(res[1]); // sal '123' uitvoer