Javascript Routing Regex

Ich muss einen Router bauen, der eine REST-Anfrage an einen richtigen Controller und eine richtige Aktion weiterleitet. Hier einige Beispiele:

POST /users
GET /users/:uid
GET /users/search&q=lol
GET /users
GET /users/:uid/pictures
GET /users/:uid/pictures/:pid

Es ist wichtig, einen einzigen regulären Ausdruck zu haben und so gut wie möglich zu sein, da das Routing unabdingbar ist und bei jeder Anforderung durchgeführt wird.

wir müssen zuerst ersetzen: (bis zum Ende oder bis zum nächsten Schrägstrich /) in den URLs mit einem regulären Ausdruck, den wir anschließend verwenden können, um die URL mit der Anforderungs-URL zu validieren.

Wie können wir diese dynamischen Routings durch Regex ersetzen? Suchen Sie beispielsweise nach einer Zeichenfolge, die mit ":" beginnt und mit "/", Ende der Zeichenfolge oder "&" endet.

Das habe ich versucht:

var fixedUrl = new RegExp(url.replace(/\\\:[a-zA-Z0-9\_\-]+/g, '([a-zA-Z0-0\-\_]+)'));

Aus irgendeinem Grund funktioniert es nicht. Wie könnte ich einen regulären Ausdruck implementieren, der: id durch einen regulären Ausdruck ersetzt, oder sie einfach ignorieren, wenn ich sie mit der tatsächlichen Anforderungs-URL vergleiche?

Danke für die Hilfe

Antworten auf die Frage(1)

Ihre Antwort auf die Frage