Mabano yasiyohifadhi katika Regular Expressions za JavaScript
Mabano ( ) yanatekeleza kazi mbili -
kuweka herufi pamoja na kazi ya mfuko. Lakini
je, tutafanyaje ikiwa tunahitaji kuweka pamoja,
lakini si kuweka kwenye mfuko?
Ili kutatua tatizo kama hilo, mabano maalum
yasiyohifadhi (?: )
yalianzishwa - yanaweka pamoja, lakini hayaiweki kwenye mfuko.
Mfano
Katika mfano ufuatao, mabano ya kwanza yanahitajika kwa ajili ya kuweka pamoja, na ya pili - kwa mfuko. Hata hivyo, mabano yote yanaweka data kwenye mfuko:
let str = 'abab123';
let res = str.match(/(ab)+([1-9]+)/);
Matokeo yake, mifukoni yetu itakuwa na yafuatayo:
console.log(res[0]); // itatoa 'abab123'
console.log(res[1]); // itatoa 'ab'
console.log(res[2]); // itatoa '123'
Mfano
Wacha tufanye ili mabano ya kwanza yaweke pamoja tu, wala isiweke kwenye mfuko:
let str = 'abab123';
let res = str.match(/(?:ab)+([1-9]+)/);
Matokeo yake, kwenye mfuko wa kwanza kutakuwa na nambari yetu:
console.log(res[1]); // itatoa '123'