In the replace method, in addition
to capturing groups with your numbers,
standard capturing groups are always
available: $&
- entire match found,
$`
and $'
- part of a
string before and after the match.
Let's see how they work with examples.
Example
Let's find all the numbers and enclose them in parentheses:
let str = '1 23 456';
let res = str.replace(/\d+/g, '($&)');
As a result, the following will be written to the variable:
'(1) (23) (456)'
Example
Let's find the @ symbol and replace it with a content before it, @ symbol, and a content after it. We write all this in parentheses:
let str = '123@456';
let res = str.replace(/@/g, "($`@$')");
As a result, the following will be written to the variable:
'123(123@456)456'
Example
Let's say we want to find a dollar symbol
and wrap it in quotes ``
. In this
case, in order for $`
not to be
interpreted as a command, the dollar sign
must be doubled:
let str = 'aaa $ bbb';
let res = str.replace(/\$/g, '`$$`');
As a result, the following will be written to the variable:
'aaa `$` bbb'
Practical tasks
Given a string:
let str = 'a1b2c3';
Write a regex that next to each digit will write the same one.
Given a string:
let str = 'sss site.ru zzz site.com kkk';
Replace domains with links like:
<a href="http://site.ru">site.ru</a>