Командата 'или' во регуларните изрази на JavaScript

Во оваа лекција ќе ја разгледаме командата '|', која претставува помоќна варијанта на 'или' во споредба со командата [ ]. Оваа команда овозможува делење на регуларниот израз на неколку делови. При тоа, бараната низа може да одговара или на еден дел од регуларниот израз, или на друг. Ајде да погледнеме на примери.

Пример

Во овој пример шаблонот за пребарување е: три букви 'a' или три букви 'b':

javascriptlet str = 'aaa bbb abb';
let res = str.replace(/a{3}|b{3}/g, '!');

Како резултат во променливата ќе се запише следново:

javascript'! ! abb'

Пример

Во овој пример шаблонот за пребарување е: три букви 'a' или од 1 и повеќе букви 'b':

javascriptlet str = 'aaa bbb bbbb bbbbb axx';
let res = str.replace(/a{3}|b+/g, '!');

Како резултат во променливата ќе се запише следново:

javascript'! ! ! ! axx'

Пример

Во овој пример шаблонот за пребарување е: една или повеќе букви или три цифри:

javascriptlet str = 'a ab abc 1 12 123';
let res = str.replace(/[a-z]+|\d{3}/g, '!');

Како резултат во променливата ќе се запише следново:

javascript'! ! ! 1 12 !'

Пример

Вертикалната линија може да го подели регуларниот израз не на два дела, туку на било кој број делови:

javascriptlet str = 'aaa bbb ccc ddd';
let res = str.replace(/a+|b+|c+/g, '!');

Како резултат во променливата ќе се запише следново:

javascript'! ! ! ddd'

Пример

Ако вертикалната линија се наоѓа внатре во кружни загради, тогаш 'или' работи само внатре во тие загради.

Како пример, ајде да ги најдеме низите според следниот шаблон: на почетокот стои или 'a', или 'b' еднаш или повеќе пати, а потоа две букви 'x':

javascriptlet str = 'axx bxx bbxx exx';
let res = str.replace(/(a|b+)xx/g, '!');

Како резултат во променливата ќе се запише следново:

javascript'! ! ! exx'

Практични задачи

Задание 1

Дадена е низата:

javascriptlet str = 'aeeea aeea aea axa axxa axxxa';

Напишете регуларен израз, кој ќе ги најде низите според шаблонот: на рабовите стојат букви 'a', а помеѓу нив - или буквата 'e' било кој број пати или буквата 'x' било кој број пати.

Задание 2

Дадена е низата:

javascriptlet str = 'aeeea aeea aea axa axxa axxxa';

Напишете регуларен израз, кој ќе ги најде низите според шаблонот: на рабовите стојат букви 'a', а помеѓу нив - или буквата 'e' два пати или буквата 'x' било кој број пати.