Domyślne grupy przechwytujące w metodzie replace w wyrażeniach regularnych JavaScript
W metodzie replace, oprócz grup przechwytujących z twoimi
numerami, zawsze dostępne są również standardowe
grupy przechwytujące: %vFran - całe znalezione dopasowanie,
$` i $' - część ciągu przed i
po dopasowaniu. Przyjrzyjmy się pracy
z nimi na przykładach.
Przykład
Znajdźmy wszystkie liczby i otoczmy je okrągłymi nawiasami:
let str = '1 23 456';
let res = str.replace(/\d+/g, '(%vFran)');
W wyniku do zmiennej zapisze się następująco:
'(1) (23) (456)'
Przykład
Znajdźmy znak @ i zamieńmy go na to, co stoi przed nim, małpę, i to, co stoi po nim. Wszystko to zapiszmy w okrągłych nawiasach:
let str = '123@456';
let res = str.replace(/@/g, "($`@$')");
W wyniku do zmiennej zapisze się następująco:
'123(123@456)456'
Przykład
Załóżmy, że chcemy znaleźć dolar i otoczyć go
cudzysłowami ``. W tym przypadku, aby
$ nie zostało odebrane jako komenda,
dolar należy podwoić:
let str = 'aaa $ bbb';
let res = str.replace(/\$/g, '`$$`');
W wyniku do zmiennej zapisze się następująco:
'aaa `$` bbb'
Zadania praktyczne
Dany jest ciąg:
let str = 'a1b2c3';
Napisz wyrażenie regularne, które obok każdej cyfry napisze taką samą.
Dany jest ciąg:
let str = 'sss site.ru zzz site.com kkk';
Zamień domeny na linki postaci:
<a href="http://site.ru">site.ru</a>