我試圖在一個Web應用程式中使用vue-router設定一個路由,使用regex來匹配模式。我想要匹配的模式是任何包含字母數字字符(和下劃線)而沒有斜線的字串。
/codestack
/demo45
/i_am_long
應該不匹配的字串將是:
/data/files.xml。
/share/home.html
/demo45/photos
到目前為止,我想出的唯一的重合詞是:
path: '/:用戶名([a-zA-Z0-9] )'
這并不完全正確,因為它匹配了除斜線以外的所有字符。而我只想在遇到第一個正斜杠之前的第一組字母數字字符(包括下劃線)上進行匹配。
如果一個路由包含一個正斜杠,例如:/data/files.xml,那么這應該是一個不同的重構路由匹配。因此,我也需要一個regex模式來匹配上面包含斜線的例子。理論上,它們可以包含任何數量的斜線,例如:/demo45/photos/holiday/2015/bahamas。
uj5u.com熱心網友回復:
對于第一部分,你可以匹配1個或多個單詞字符,這些字符也將匹配下劃線。
錨點^和$斷言字串的開始和結束。
^w $
對于第二個,你可以用單詞字符開始匹配,后面是/
如果有更多的正斜線,你可以選擇在一組中重復第一種模式。
模式后的最后部分可以是1個或更多的單詞字符,可選的部分是匹配一個點和單詞字符。
^w /(?:w /)*w (? :.w )? $
如果你想匹配除/以外的任何字符,你可以使用[^/]
^(?:[^s] /) [^/s] $
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/323777.html
標籤:
上一篇:如何在Url的末尾排除括號?
