Увод у регуларне изразе у 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'.