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