In einem node.js Server ich URL-Adressen mit Hilfe von JavaScript konvertieren müssen Sie wie folgt vor:Bedingtes ersetzen String mit Regular Expression
Beispiel 1:
hostA/blah/dir1/name/id.js?a=b --> name.hostC/dir2.js?guid=id&a=b
Beispiel 2:
hostB/dir1/name/id.js --> name.hostC/dir2.js?guid=id
Die Konvertierung erfolgt mit string.replace
unter Verwendung von regulären Ausdrücken in einer Konfigurationsdatei.
Bisher habe ich:
url.replace(/.*\\/dir1\\/(.*)\\/\\(d{2})\\.js?:(?=\?)(.*)/, "$1.hostC\/dir2.js?guid=$2");
Der Ersatz-String gibt ?guid=id
. Wie ändere ich den Ausdruck oder den ersetzenden String, so dass (beachten Sie das kaufmännische Und) im Fall von Beispiel 1 hinzugefügt werden und nichts im Fall von Beispiel 2 hinzugefügt?
Ist [dies] (https://regex101.com/r/fJ7oW9/1) was Sie suchen? –
@ThomasAyoub Im ersten Testfall muss das zweite '?' In ein '&' geändert werden (daher die Schwierigkeit). – 4castle