[英]Regular expression to retrieve from the URL
/test-test-test/test.aspx
嗨,您好,
我很難從上述URL中檢索出第一位。
測試測試
我試過了這個/[\\w+|-]/g
但它也匹配了最后一個test.aspx。
請幫忙。
謝謝
一種實現方法是使用Dom解析器,如此處所述: https : //stackoverflow.com/a/13465791/970247 。 然后,您可以使用例如myURL.segments; // = Array = ['test-test-test', 'test.aspx']
訪問URL的段myURL.segments; // = Array = ['test-test-test', 'test.aspx']
myURL.segments; // = Array = ['test-test-test', 'test.aspx']
您需要使用肯定的前瞻性斷言。 |
字符類中的字符將匹配文字|
符號。 它不會像交替運算符那樣工作。 所以我建議您刪除它。
[\w-]+(?=\/)
(?=\\/)
稱為正向超前斷言,它斷言匹配必須后面跟正斜杠。 在我們的例子中, test-test-test
后面只有一個正斜杠,所以它匹配了。 [\\w-]+
匹配一個或多個單詞字符或連字符。 +
重復上一個令牌一次或多次。
例:
> "/test-test-test/test.aspx".match(/[\w-]+(?=\/)/g)
[ 'test-test-test' ]
[\\w+|-]
錯誤,應為[\\w-]+
。 “不是單詞字符還是連字符的一系列字符”,而不是“單詞字符,加號,豎線或連字符的單個字符”。 g
標志表示全局匹配,因此自然會找到所有匹配,而不僅僅是第一個。 因此,您應該刪除它。
> '/test-test-test/test.aspx'.match(/[\\w-]+/) < ["test-test-test"]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.