Карманы по умолчанию в методе 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>