Standaard groepen in de replace-methode van JavaScript regular expressions
In de replace-methode zijn, naast groepen met uw
eigen nummers, ook altijd standaard
groepen beschikbaar: %vFran - de volledige gevonden match,
$` en $' - het deel van de string voor en
na de match. Laten we hun werking bekijken
aan de hand van voorbeelden.
Voorbeeld
Laten we alle getallen vinden en ze tussen ronde haakjes zetten:
let str = '1 23 456';
let res = str.replace(/\d+/g, '($&)');
Als resultaat wordt het volgende in de variabele geschreven:
'(1) (23) (456)'
Voorbeeld
Laten we het @-symbool vinden en het vervangen door wat ervoor staat, de 'at', en wat erin staat erna. We schrijven dit alles tussen ronde haakjes:
let str = '123@456';
let res = str.replace(/@/g, "($`@$')");
Als resultaat wordt het volgende in de variabele geschreven:
'123(123@456)456'
Voorbeeld
Stel we willen een dollarteken vinden en het
in backticks `` plaatsen. In dit geval, om te voorkomen
dat $` wordt opgevat als een opdracht,
moet het dollarteken worden verdubbeld:
let str = 'aaa $ bbb';
let res = str.replace(/\$/g, '`$$`');
Als resultaat wordt het volgende in de variabele geschreven:
'aaa `$` bbb'
Praktische opgaven
Gegeven een string:
let str = 'a1b2c3';
Schrijf een reguliere expressie die naast elk cijfer hetzelfde cijfer plaatst.
Gegeven een string:
let str = 'sss site.ru zzz site.com kkk';
Vervang de domeinen door links van het formulier:
<a href="http://site.ru">site.ru</a>