亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

傳遞變量時匹配正則表達式

傳遞變量時匹配正則表達式

呼如林 2022-07-21 20:59:50
我正在嘗試測試一個location.pathname. 我正在使用正則表達式傳遞一個函數的路徑。路徑可以是:/dashboard/dashboard/orders并且location.pathname可以是:/dashboard/dashboard/orders/dashboard/orders/5ea5c95684c28d4b7ff688e1/dashboard/orders/anyOtherId我想要做的是傳遞時,/dashboard/orders/5ea5c95684c28d4b7ff688e1因為location.pathname它只與path /dashboard/orders而不匹配/dashboard。在https://regexr.com/中測試正則表達式我可以使它工作:\/dashboard\/*,然后我嘗試在 javascript 中實現它:const matcher = new RegExp(`${path}\/*`)matcher.test(location.pathname)但是,當我通過 a path = /dashboard/ordersand時,location.pathname = /dashboard/orders/5ea5c95684c28d4b7ff688e1它與/dashboardand匹配/dashboard/orders。我需要它只與/dashboard/orders. 只有當is和/dashboard時才必須匹配。path/dashboardlocation.pathname = /dashboard我怎樣才能做到這一點?提前致謝編輯:為了更清楚,我需要它在pathis/dashboard/orders和location.pathnameis/dashboard/orders或時返回 true /dashboard/orders/5ea5c95684c28d4b7ff688e1。但它必須在pathis/dashboard和location.pathnameis/dashboard/orders或時返回 false/dashboard/orders/5ea5c95684c28d4b7ff688e1
查看完整描述

2 回答

?
縹緲止盈

TA貢獻2041條經驗 獲得超4個贊

您可以.replacelocation.pathname第二個路徑組件之后刪除所有內容,然后與path變量進行比較。

此解決方案應該適合您:

path == location.pathname.replace(/^(\/dashboard\/[\w-]+)\/.*$/, '$1')

正則表達式演示.replace


查看完整回答
反對 回復 2022-07-21
?
慕村225694

TA貢獻1880條經驗 獲得超4個贊

在這里,您可以使用兩種不同的正則表達式。一個正則表達式 -

 "\/dashboard(\/)?$"

這將匹配"/dashboard""/dashboard/"

第二個正則表達式 -

 "\/dashboard\/orders(\/[a-zA-Z0-9]*(\/)?)?$"

這將匹配

/dashboard/orders /dashboard/orders/5ea5c95684c28d4b7ff688e1 /dashboard/orders/anyOtherId /dashboard/orders/ /dashboard/orders/5ea5c95684c28d4b7ff688e1/ /dashboard/orders/anyOtherId/


查看完整回答
反對 回復 2022-07-21
  • 2 回答
  • 0 關注
  • 128 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號