Match Url-Pfad ohne query-string
Möchte ich, um einen Pfad in einer Url, aber ignorieren den querystring.
Die regex sollte eine optionale trailing slash vor dem querystring.
Beispiel-urls, die sollten einen gültigen match:
/path/?a=123&b=123
/path?a=123&b=123
Also den string '/path' sollte entsprechend der oben genannten urls.
Ich habe versucht die folgende regex: (/path[^?]+).*
Aber dies wird nur für den Abgleich von urls wie im ersten Beispiel oben: /path/?a=123&b=123
Irgendeine Idee, wie ich würde, das durchzuziehen, das mit dem zweiten Beispiel ohne abschließenden slash?
Regex ist eine Voraussetzung.
(/path[?]+|/Pfad/[?]+).*
InformationsquelleAutor JCoder23 | 2013-10-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Keine Notwendigkeit für regexp:
Wenn Sie es wirklich brauchen, dann versuchen Sie dies:
BEARBEITEN Eigentlich die genaue regexp sollte:
weil Sie es wollen, entsprechend
/path
oder/path/
oder/path?something
oder/path/?something
- und sonst nichts. Beachten Sie, dass?
bedeutet "höchstens eins", während\?
bedeutet ein Fragezeichen.BTW: Welche Art von routing-Bibliothek verarbeitet nicht-query-strings?? Ich schlage vor, mit etwas anderem.
Aktualisiert man mehr Zeit
Im mit CasperJS mit dem PhantomJS-webserver-Modul. Der web-server-Modul ist eine einfache http-server (Mongoose), die nicht über routing eingebaut. Ich fand eine routing library jemand schrieb, dass nicht die support-query-strings, wie in urls nicht übereinstimmen, wenn ein querystring an die url. So brauchte ich diese regex entsprechend eine route ohne den query-string, den ich dann gepatcht die routing-Bibliothek richtig analysiert, der aus den query-string und fügen Sie dem request-Objekt der route.
InformationsquelleAutor freakish
http://jsfiddle.net/bJcX3/
InformationsquelleAutor Kevin Collins