⊗jsSpRENPB 132 of 294 menu

Ikke-opbevarende parenteser i JavaScript regulære udtryk

Parenteser ( ) udfører to funktioner - gruppering af tegn og lomme-funktion. Men hvad gør vi, hvis vi har brug for at gruppere, men ikke lægge i lommen? Til at løse dette problem er der specielle ikke-opbevarende parenteser (?: ) - de grupperer, men lægger ikke i lommen.

Eksempel

I det følgende eksempel har vi brug for de første parenteser til gruppering, og de anden - til lommen. Dog gemmer begge parenteser data i lommen:

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

Som et resultat vil følgende være i vores lommer:

console.log(res[0]); // vil udskrive 'abab123' console.log(res[1]); // vil udskrive 'ab' console.log(res[2]); // vil udskrive '123'

Eksempel

Lad os sikre, at det første sæt parenteser kun grupperer, men ikke lægger i lommen:

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

Som et resultat vil vores tal være i den første lomme:

console.log(res[1]); // vil udskrive '123'
mshiswhuaz