Javascript - 拆分和连接 - 删除前 3 个数组

标签 javascript jquery

链接 - 拆分并删除前 3 个数组。

offerlink 变量将有多个 url。但是,/content/revamp/en 对于所有链接都将保持不变。必须从路径名中删除它。

offerlink2 - 按预期工作。但是,offerLink1 也通过排除/hotels/india 获得结果。这是此网址所必需的。

相同的代码必须适用于 OfferlInk1 和 OfferLink2。

JS:

    var offerlink = /content/revamp/en/hotels/india/offers/purchase.html
    var offerLinkSplit = $offerLink.replace(/\.\w+$/, '').split('/');
    var offerLinkTrim = $offerLinkSplit.slice(-2).join('/');

获取输出(错误)=/offers/purchase

所需输出 =/hotels/india/offers/purchase

<小时/>

如果下面的链接意味着/content/revamp/en/offers/quick-deal.html

正确输出 =/offers/quick-deal

最佳答案

尝试使用slice(4)提取第四个之后的/在您的输入中:

var $offerLink1 = '/content/revamp/en/hotels/india/offers/purchase.html'
var offerLinkSplit1 = $offerLink1.replace(/\.\w+$/, '').split('/');
var offerLinkTrim1 = '/' + offerLinkSplit1.slice(4).join('/');
console.log(offerLinkTrim1);

请注意,字符串需要用分隔符括起来,并且需要使用一致的变量名称。

不过,单独使用正则表达式可能会更好:匹配 /<anything but /> 的 3 次重复,并替换为空字符串:

var $offerLink1 = '/content/revamp/en/hotels/india/offers/purchase.html';
var $offerLink2 = '/content/revamp/en/offers/quick-deal.html';
const re = /(?:\/[^/]+){3}/;
console.log(
  $offerLink1.replace(re, ''),
  $offerLink2.replace(re, '')
);

关于Javascript - 拆分和连接 - 删除前 3 个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55354466/

相关文章:

javascript - 在 CoffeeScript 中使用数组

javascript - Jquery - 需要使用选定的单词验证文本字段

javascript - 为什么 jQuery.val() 的行为与 jQuery 的其余部分不同

javascript - jQuery 为什么这不起作用 $ (":input").change(function(){});

javascript - 在 jQuery 中克隆/追加大型 HTML block 但更改内部变量?

javascript - 计算元素的剩余宽度

javascript - 如何获取 javascript 对象中的一个属性名称?

jQuery "visible"不适用于所有浏览器,但在 Firefox 中

javascript - 条件触发时如何去掉第一个空格?

javascript - 我如何循环遍历javascript中的编号变量