Hey also ich habe folgendes Skript, das funktioniert:Re-Factoring regulärer Ausdruck nicht leer Gruppen schließen
Es ist für die Zeichenfolge Phone: (##) ### ####
$(function(){
var regex = /(^|\W)Phone:($|\W)\(?([0-9]{2})\)?([ .-]?)([0-9]{3})\2([0-9]{4})/g;
var target = $('[data-hook="phone-number"]');
var string = target.html();
string = string.replace(regex, "><a href=\"tel:$3$5$6\">Phone: ($3) $5 $6</a>");
target.html(string);
});
Aber wie Sie es möglicherweise fest, sieht ziemlich rau ist (Regex ist nicht meine Stärke) Ich frage mich, gibt es eine Möglichkeit, leere Gruppen ($1
, $2
, $4
) in diesem Fall zu ignorieren.
So kann ich einfach $1
, $2
, $3
in einer idealen Welt verwenden.
Auch kann ich nicht herausfinden, wie (^|\W)
aus ignorieren das >
Symbol zu stoppen, also warum in meinem replace
ein nachläuft >
ist es eine Möglichkeit, regex zu sagen, zu einer Nummer verschieben/entfernen?
Wollen Sie immer ignorieren diese Gruppen? – Laurel
Ja, es ist ziemlich spezifisch, also ist es in Ordnung, sie zu ignorieren. –