АКЦЫЯ: бясплатныя месячныя курсы па стварэнні сайтаў
на выбар: вёрстка, JavaScript, PHP, Python або фрэймворкі. Сёння апошні дзень для запісу! Націскай!
⊗jsSpREInr 96 of 294 menu

Увядзенне ў рэгулярныя выразы ў JavaScript

Рэгулярныя выразы - гэта такія каманды для складанага пошуку і замены (або проста пошуку). Яны дазваляюць рабіць вельмі цікавыя рэчы, але, на жаль, даволі цяжкія ў асваенні.

Існуе некалькі метадаў JavaScript для работы з рэгулярнымі выразамі. Мы пачнем знаёміцца з імі на прыкладзе replace - вы ўжо знаёмыя з гэтым метадам: ён першым параметрам прымае што мяняць, а другім - на што мяняць. А сам метад ужываецца да радка, у якім вырабляецца замена:

'bab'.replace('a', '!'); // верне 'b!b'

Першым параметрам гэтага метаду можна перадаваць не проста радок, а рэгулярны выраз. Рэгулярны выраз уяўляе сабой набор каманд, размешчаных унутры слэшаў /. Гэтыя слэшы называюцца абмежавальнікамі рэгулярных выразаў.

Самі рэгулярныя выразы складаюцца з двух тыпаў сімвалаў: з тых, якія абазначаюць саміх сябе і з сімвалаў-каманд, якія называюцца спецыяльныя сімвалы.

Літары і лічбы абазначаюць саміх сябе. У наступным прыкладзе мы з дапамогай рэгулярнага выразу заменім літару 'a' на !:

'bab'.replace(/a/, '!'); // верне 'b!b'

А вось кропка з'яўляецца спецыяльным сімвалам і абазначае любы сімвал. У наступным прыкладзе мы знойдзем радок па такім шаблоне: літара 'x', затым любы сімвал, затым зноў літара 'x':

'xax eee'.replace(/x.x/, '!'); // верне '! eee'

Пасля абмежавальнікаў можна пісаць мадыфікатары - каманды, якія змяняюць агульныя ўласцівасці рэгулярнага выразу. Напрыклад, мадыфікатар g уключае рэжым глабальнага пошуку і замены - без яго рэгулярка шукае толькі першае супадзенне, а з ім - усе супадзенні.

У наступным прыкладзе не ўказаны мадыфікатар g і рэгулярка знойдзе толькі першае супадзенне:

'aab'.replace(/a/, '!'); // верне '!ab'

А цяпер рэгулярка знойдзе ўсе супадзенні:

'aab'.replace(/a/g, '!'); // верне '!!b'

Дадзены радок:

let str = 'ahb acb aeb aeeb adcb axeb';

Напішыце рэгулярку, якая знойдзе радкі 'ahb', 'acb', 'aeb' па шаблоне: літара 'a', любы сімвал, літара 'b'.

Дадзены радок:

let str = 'aba aca aea abba adca abea';

Напішыце рэгулярку, якая знойдзе радкі 'abba', 'adca', 'abea' па шаблоне: літара 'a', 2 любых сімвала, літара 'a'.

Дадзены радок:

let str = 'aba aca aea abba adca abea';

Напішыце рэгулярку, якая знойдзе радкі 'abba' і 'abea', не захапіўшы 'adca'.

byenru