[英]regex in javascript to remove numeric path from url
我有以下帶有客戶ID等的URL。我想刪除它們,並用星號代替它們。 以下示例將為您提供一個更好的主意。
/paas/service/3.0/part/d878bc1e-9bb8-4a0e/log/account/7367c100-9390-11e3/resource/AdminHistory --> /paas/service/3.0/part/*/log/account/*/resource/AdminHistory
/hs/service/3.0/bootstrap/mnd/3388959354 --> /hs/service/3.0/bootstrap/mnd/*
/paas/service/3.0/part/d878bc1e-9bb8-4a0e-b224-a4ba0d7dfcec/asset --> /paas/service/3.0/part/*/asset
/paas/service/3.0/part/3c5631df-52c9/servicepolicy/8ee6ba08-8d7a/carrierPlan/c2b4a364-98e3-4546 --> /paas/service/3.0/part/*/servicepolicy/*/carrierPlan/*
ID為數字或字母數字。 我應該如何處理?
ID為數字或字母數字。
示例URL中的所有部分都包含字母或數字,因此您需要知道ID 之前的文字,以便您可以定位該ID以及后面的ID。
所以也許是這樣的:
function modifyURL(url) { return url.replace(/(\\/(?:part|account|mnd|servicepolicy|carrierPlan)\\/)[^\\/]+/g, "$1*"); } console.log(modifyURL("/paas/service/3.0/part/d878bc1e-9bb8-4a0e/log/account/7367c100-9390-11e3/resource/AdminHistory")); console.log(modifyURL("/hs/service/3.0/bootstrap/mnd/3388959354")); console.log(modifyURL("/paas/service/3.0/part/d878bc1e-9bb8-4a0e-b224-a4ba0d7dfcec/asset")); console.log(modifyURL("/paas/service/3.0/part/3c5631df-52c9/servicepolicy/8ee6ba08-8d7a/carrierPlan/c2b4a364-98e3-4546"));
要解釋我使用過的正則表達式:
( // start of capturing submatch
\/ // match a forward slash
(?: // start of non-capturing group
part|account|mnd|servicepolicy|carrierPlan // match one of those words
) // end of non-capturing group
\/ // match forward slash
) // end of capturing submatch
[^\/]+ // match one or more of anything but a forward slash
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.