繁体   English   中英

JavaScript RegEx匹配网址路径

[英]JavaScript RegEx to match url path

我有如下可能的网址路径

/articles
/payment
/about
/articles?page=1
/articles/hello-world

我只想匹配url的主要路径,即预期的匹配项: ['articles', 'payment', 'about', 'articles', 'articles']

因此,我尝试构建JavaScript RegEx并尽可能地提出[az].*(?=\\/|\\?) ,不幸的是,它仅与最后两个字符串匹配

请指导谢谢大家

https://regex101.com/r/A86hYz/1

/^\/([^?\/]+)/

此正则表达式捕获第一个/和第二个/或第一个之间的所有内容? 如果存在。 这似乎是您想要的模式。 如果不是,请告诉我,我会根据需要进行调整。 一些简单的调整将是捕获每个/之间的内容以及捕获查询参数。

为了将来参考,在编写正则表达式时,请尽量避免先行/后退,除非您必须这样做,因为它们通常会引入错误。 如果您坚持使用常规运算符,这是最简单的。

要访问匹配项,请使用正则表达式,如下所示:

var someString = '/articles?page=1';
var extracted = someString.match(/^\/([^?\/]+)/)[1]

或更一般地

function getMainPath(str) {
    const regex = /^\/([^?\/]+)/;
    return str.match(regex)[1];
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM