router.post(/^\/(path_A|path_B)/, verify, async (req, res) => {
...
});
目標是匹配路徑path_A并path_B在同一路徑中。我不認為正則運算式寫得正確。有人可以仔細檢查嗎?
uj5u.com熱心網友回復:
您的代碼:
router.post(/^\/(path_A|path_B)/, verify, async (req, res) => {
...
});
可以很好地匹配/path_A或/path_B。我已經通過在本地運行它來驗證它。關于這個的一些注意事項:
^如果你想確保你的正則運算式從路徑的開頭開始并且不能只匹配路徑中間的東西,那么這是必需的。例如,如果沒有^,它將匹配/X/path_A或/www/path_B。您現有的正則運算式也將匹配
/path_AAAA,/path_Bxxx因為它在匹配后沒有指定任何內容。如果您之后只想匹配/path_A或/path_B不匹配,那么您可以$在正則運算式的末尾放置一個。這些只是常規的正則運算式,因此它們只會匹配任何舊的正則運算式會匹配的內容。所有正常的正則運算式規則都適用。如果您指定字串而不是正則運算式,那么您的匹配選項將受到更多限制(正則運算式庫的路徑支持的正則運算式內容的子集,Express 將需要通過測驗其他條件來進行更完整的匹配。但是,如果您使用regex 物件,那么這一切都取決于您。
僅供參考,我嘗試不使用這樣的本機正則運算式物件,并讓內置的正則運算式路徑處理細節:
router.post("/(path_A|path_B)", verify, async (req, res) => {
...
});
而且,它不會作業。事實上,它在執行router.post()和決議路徑時會遇到運行時錯誤。在診斷問題時,它似乎是正則運算式路徑庫中的一個舊錯誤,該錯誤早已被修復,但 Express 加載了存在此問題的舊版本庫。因此,就目前而言,您嘗試執行的操作似乎需要完整的正則運算式物件。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/342419.html
標籤:javascript 正则表达式 表达
上一篇:如何撰寫一個正則運算式來匹配一組以逗號分隔的鍵:值對?
下一篇:限制10個字符是數字,只有1個點
