簡體   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