首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >javascript中的regex,用于从url中删除数字路径

javascript中的regex,用于从url中删除数字路径
EN

Stack Overflow用户
提问于 2016-10-18 08:27:29
回答 1查看 193关注 0票数 0

我有像下面这样的网址与客户ID等。我想删除他们,并把一个星号代替他们。下面的例子会给你一个更好的想法。

代码语言:javascript
复制
/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可以是数字或字母数字。我应该如何处理这个问题?

EN

回答 1

Stack Overflow用户

发布于 2016-10-18 08:36:34

ID可以是数字或字母数字。

您的示例URL中的所有部分都包含字母或数字,因此您需要知道ID之前的文本是什么,以便您可以针对该ID加上后面的ID。

所以可能是这样的:

代码语言:javascript
复制
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"));

为了解释我使用的正则表达式:

代码语言:javascript
复制
(       // 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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40097673

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档