Подразумевани џепови у replace методу са регуларним изразима у JavaScript-у

У методу replace, поред џепова са вашим бројевима, увек су доступни и стандардни џепови: $& - све пронађено поклапање, $` и $' - део стринга пре и после поклапања. Хајде да погледамо рад са њима на примерима.

Пример

Хајде да нађемо све бројеве и обмотамо их у округле заграде:

javascriptlet str = '1 23 456';
let res = str.replace(/\d+/g, '($&)');

Као резултат у променљиву ће се уписати следеће:

javascript'(1) (23) (456)'

Пример

Хајде да нађемо симбол @ и заменимо га тим што стоји пре њега, симболом @, и тим што стоји после њега. Све то запишимо у округлим заградама:

javascriptlet str = '123@456';
let res = str.replace(/@/g, "($`@$')");

Као резултат у променљиву ће се уписати следеће:

javascript'123(123@456)456'

Пример

Рецимо да желимо да нађемо долар и обмотамо га у наводнике ``. У том случају, да $& не би био схваћен као команда, долар треба удвостручити:

javascriptlet str = 'aaa $ bbb';
let res = str.replace(/\$/g, '`$$`');

Као резултат у променљиву ће се уписати следеће:

javascript'aaa `$` bbb'

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

Задание 1

Дат је стринг:

javascriptlet str = 'a1b2c3';

Напишите регуларни израз који поред сваке цифре напише исту такву.

Задание 2

Дат је стринг:

javascriptlet str = 'sss site.ru zzz site.com kkk';

Замените домене са линковима типа:

html<a href="http://site.ru">site.ru</a>