Подразумевани џепови у replace методу са регуларним изразима у JavaScript-у
У методу replace, поред џепова са вашим
бројевима, увек су доступни и стандардни
џепови: $& - све пронађено поклапање,
$` и $' - део стринга пре и
после поклапања. Хајде да погледамо рад
са њима на примерима.
Пример
Хајде да нађемо све бројеве и обмотамо их у округле заграде:
let str = '1 23 456';
let res = str.replace(/\d+/g, '($&)');
Као резултат у променљиву ће се уписати следеће:
'(1) (23) (456)'
Пример
Хајде да нађемо симбол @ и заменимо га тим што стоји пре њега, симболом @, и тим што стоји после њега. Све то запишимо у округлим заградама:
let str = '123@456';
let res = str.replace(/@/g, "($`@$')");
Као резултат у променљиву ће се уписати следеће:
'123(123@456)456'
Пример
Рецимо да желимо да нађемо долар и обмотамо га
у наводнике ``. У том случају, да
$& не би био схваћен као команда,
долар треба удвостручити:
let str = 'aaa $ bbb';
let res = str.replace(/\$/g, '`$$`');
Као резултат у променљиву ће се уписати следеће:
'aaa `$` bbb'
Практични задаци
Дат је стринг:
let str = 'a1b2c3';
Напишите регуларни израз који поред сваке цифре напише исту такву.
Дат је стринг:
let str = 'sss site.ru zzz site.com kkk';
Замените домене са линковима типа:
<a href="http://site.ru">site.ru</a>