Javascript 捕获url的第一部分

Javascript 捕获url的第一部分,javascript,regex,Javascript,Regex,假设我有以下网址 /product /product/1 /product/1/buy /customer /customer/1 /customer1/contact 我正在尝试使用正则表达式来获得以下匹配项,以便对其运行switch语句 /product /customer 我尝试了以下方法,也尝试了其他方法 request.url.match(/^\/(.*)(\/?)/) 你很接近!试试这个 /^\/(.*?)(\/|$)/ 例如 为什么 ^\/将匹配字符串的开头。 (.*?

假设我有以下网址

/product
/product/1
/product/1/buy

/customer
/customer/1
/customer1/contact
我正在尝试使用正则表达式来获得以下匹配项,以便对其运行switch语句

/product

/customer
我尝试了以下方法,也尝试了其他方法

request.url.match(/^\/(.*)(\/?)/)

你很接近!试试这个

/^\/(.*?)(\/|$)/
例如

为什么
^\/
将匹配字符串的开头。
(.*?
将匹配后面的任何内容(包括
/
使其不贪婪)。

最后一个
\/
将使正则表达式回溯,直到在
(.*?
之后找到
/
,或者如果找到字符串的结尾
$
另一个选项是使用拆分:

var result = request.url.split("/")[1]; // result = product

arr=[
“/产品”,
“/product/1”,
“/product/1/buy”,
“/客户”,
“/customer/1”,
“/customer/1/联系人”
]

arr.forEach(a=>console.log(a.match(/^\/([^\/]*))/g)[0])为什么不使用var segments=yoururl.split('/');第一个是“/”+段[1]。它在字符串末尾为
/product
/customer
填充a/以补偿这种情况。如果已经有了额外的/也不会有什么伤害。@kd4ttc也是真的,@Cᴀʟʟᴏᴅᴀᴄɪᴛ刚刚用美元解决了这个问题,这是最后一行。该死,这里的事情进展得很快!很好很简单-我喜欢它!
var result = request.url.split("/")[1]; // result = product