匹配没有查询字符串的URL路径

JCo*_*r23 7 javascript regex

我想匹配Url中的路径,但忽略查询字符串.正则表达式应该在查询字符串之前包含可选的尾部斜杠.

应提供有效匹配的示例网址:

/path/?a=123&b=123

/path?a=123&b=123
Run Code Online (Sandbox Code Playgroud)

所以字符串'/ path'应匹配上述任一URL.

我试过以下正则表达式: (/path[^?]+).*

但这只会匹配上面第一个例子的网址: /path/?a=123&b=123

知道如何让它匹配第二个例子没有尾随斜线吗?

正则表达式是一个要求.

fre*_*ish 5

不需要正则表达式:

url.split("?")[0];
Run Code Online (Sandbox Code Playgroud)

如果你真的需要它,那么试试这个:

\/path\?*.*
Run Code Online (Sandbox Code Playgroud)

编辑实际上最精确的正则表达式应该是:

^(\/path)(\/?\?{0}|\/?\?{1}.*)$
Run Code Online (Sandbox Code Playgroud)

因为你想匹配/pathor/path//path?somethingor/path/?something并且没有别的。请注意,这?意味着“最多一个”,而\?意味着一个问号。

BTW:什么样的路由库不处理查询字符串??我建议使用其他东西。