JS/bookmarklet将URL中的字符替换为其他字符,但保留域名



单击bookmarklet时,我需要URL,例如:

https://example.com/test/page1/page2/page3/final page

替换为:

https://example.com/panel/pages/test+page1+page2+page3+final-page

如果不清楚,则域保持不变,但之后是/panel/pages/,后面是相同的原始页面结构,但使用+而不是/。最后,如果最终页面有空格(并非所有页面都有空格(,则使用-

并不是每个我想要的URL在最后一个之前都有三页。有些人只有一两个。因此,它需要以某种方式适用于所有人。

这里的想法是,第二个链接用于编辑页面,第一个是实时页面。我想要一个简单的方法打开页面进行编辑。理想情况下,新的URL将在一个新的选项卡中打开

考虑到我在这方面完全是个新手,我很想找个方向。

这个怎么样?

(function(loc) {
loc.href = `${loc.protocol}//${loc.host}/panel/pages/${
loc
.pathname
.slice(1)
.replace(///g, "+")
.replace(/(s|%20)/g, "-")
}`;
})(window.location)

这创建了一个重定向到…

  1. protocolhttp:https:
  2. 在域和主机之间添加//
  3. 页面主机名
  4. 我们转到硬编码的/panel/pages/
  5. loc.pathname获取URL中/及其后的所有内容
  6. 因为它包括前导/,所以我们必须删除它,这样它就不会像.slice(1)一样变成+
  7. 然后我们用+替换所有/
  8. 替换所有空格(在URL中编码为%20(

书签就绪代码:

javascript:(function(l){l.href=`${l.protocol}//${l.host}/panel/pages/${l.pathname.slice(1).replace(///g,"+").replace(/%20/g,"-")}`})(window.location)

相关内容

  • 没有找到相关文章

最新更新