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:
let str = 'abab123';
let res = str.match(/(ab)+([1-9]+)/);
As gevolg sal die volgende in ons sakke wees:
console.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:
let str = 'abab123';
let res = str.match(/(?:ab)+([1-9]+)/);
As gevolg sal ons getal in die eerste sak wees:
console.log(res[1]); // sal '123' uitvoer