我采用以下ex URL https://support.dev.mysite.com/batch/并删除所有内容,但删除了环境(例如dev)。 下面的代码工作正常。

var env = endPoint.replace("https://support.", "\n");
var envClean = env.replace(".mysite.com/batch/", "\n");

我不喜欢重复自己。 我想在字符串中查找这两种模式并立即将其全部删除。 MDN在这里具有replace()的详细分类-https: //developer.mozilla.org/zh-CN/docs/JavaScript/Reference/Global_Objects/String/replace,但是它没有提及有关多个参数的任何内容。

我已经试过了:

var env = endPoint.replace("https://support." && ".mysite.com/batch/", "\n"); 

但它只是解析第二个arg而忽略了第一个。

有没有人有一个更清洁的方式来做到这一点? 我假设我可以通过REGEX搜索多种模式,那里有REGEX大师可以帮助您吗?

干杯。

===============>>#1 票数:3 已采纳

您可以为此使用正则表达式:

var environment  = 'https://support.dev.mysite.com/batch/'
    .replace(/^https:\/\/support\.|\.mysite\.com\/batch\/$/g, '');

===============>>#2 票数:1

您可以链接您的方法:

var envClean = endPoint.replace("https://support.", "\n").replace(".mysite.com/batch/", "\n");

或者您可以使用正则表达式:

var envClean = endPoint.replace(/https:\/\/support\.|\.mysite\.com\/batch\//, "\n");

还有另一种解决方案来获取dev

var envClean = endPoint.match(/^https:\/\/support\.([^.]*)\.mysite\.com\/batch\/$/)[1];

===============>>#3 票数:1

对于此特定的URL模式,为什么不使其变得非常简单并使用.split()

var url = 'https://support.dev.mysite.com/batch/';

var name = url.split('.')[1];

如果使用正则表达式,则可能会这样:

var match = url.match( /support\.(.*)\.mysite.com/ );
var name = match && match[1];

请注意,您不必担心整个URL,只需要进行匹配即可。

如果您知道该URL将匹配,则可以将其简化为:

var name = url.match( /support\.(.*)\.mysite.com/ )[1];

  ask by Scott Sword translate from so

未解决问题?本站智能推荐:

关注微信公众号