Krokainās iekavas JavaScript regulārajās izteiksmēs
Operatori '+', '*', '?'
ir labi, taču ar to palīdzību nevar norādīt
konkrētu atkārtojumu skaitu. Šajā gadījumā
jums palīdzēs operators {}.
Tas strādā šādi: {5}
- pieci atkārtojumi, {2,5} – atkārtojas
no diviem līdz pieciem (abi ieskaitot), {2,}
- atkārtojas divas vai vairāk reizes. Pievērsiet uzmanību
tam, ka šāda varianta - {,2}
- nav. Apskatiet piemērus:
Piemērs
Šajā piemērā meklēšanas šablons izskatās šādi:
burts 'x', burts 'a' vienu
reizi vai divas reizes, burts 'x':
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{1,2}x/g, '!');
Rezultātā mainīgajā tiks ierakstīts sekojošs:
'xx ! ! xaaax'
Piemērs
Šajā piemērā meklēšanas šablons izskatās šādi:
burts 'x', burts 'a' divas
reizes vai vairāk, burts 'x':
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{2,}x/g, '!');
Rezultātā mainīgajā tiks ierakstīts sekojošs:
'xx xax ! !'
Piemērs
Šajā piemērā meklēšanas šablons izskatās šādi:
burts 'x', burts 'a' trīs
reizes, burts 'x':
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{3}x/g, '!');
Rezultātā mainīgajā tiks ierakstīts sekojošs:
'xx xax xaax !'
Piemērs
Šajā piemērā meklēšanas šablons izskatās šādi:
burts 'a' desmit reizes:
let str = 'aaa aaaaaaaaaa aaa';
let res = str.replace(/a{10}/g, '!');
Rezultātā mainīgajā tiks ierakstīts sekojošs:
'aaa ! aaa'
Piemērs
Šajā piemērā koda autors gribēja šādu šablonu:
burts 'x', burts 'a' trīs
reizes reizes vai mazāk, burts 'x',
bet, diemžēl, tāds - {,3} - nestrādā.
Jānorāda tieši:
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{1,3}x/g, '!');
Rezultātā mainīgajā tiks ierakstīts sekojošs:
'xx ! ! !'
Piemērs
Nulle arī ir pieļaujama:
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{0,3}x/g, '!');
Rezultātā mainīgajā tiks ierakstīts sekojošs:
'! ! ! !'
Praktiskie uzdevumi
Dota virkne:
let str = 'aa aba abba abbba abbbba abbbbba';
Uzrakstiet regulāro izteiksmi, kas atradīs virknes
'abba', 'abbba', 'abbbba'
un tikai tās.
Dota virkne:
let str = 'aa aba abba abbba abbbba abbbbba';
Uzrakstiet regulāro izteiksmi, kas atradīs virknes
veida 'aba', kurās 'b' sastopams
mazāk nekā 3 reizes (ieskaitot).
Dota virkne:
let str = 'aa aba abba abbba abbbba abbbbba';
Uzrakstiet regulāro izteiksmi, kas atradīs virknes
veida 'aba', kurās 'b' sastopams
vairāk nekā 4 reizes (ieskaitot).