[英]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.