GreaseMonKey脚本将某个域上的所有URL替换为另一个域



我想替换网站上的所有链接https://www.reddit.com/r/videos/具有具有不同域的youtube.comyoutu.be

我创建了这个脚本,该脚本成功地用youpak.com替换了所有youtube.com,但是由于某种原因,youtu.be链接未替换

// ==UserScript==
// @name        replace r/videos youtube with youpak
// @namespace   test
// @include     https://www.reddit.com/r/videos/
// @version     1
// @grant       none
// ==/UserScript==
var links = document.getElementsByTagName('a');
var regexFull = /^https://www.youtube.com/(.*)$/i;
var regexShort = /^https://.youtu.be/(.*)$/i;
for (var i = 0; i < links.length; i++) {
  links[i].href = links[i].href.replace(regexFull, 'https://www.youpak.com/$1');
  links[i].href = links[i].href.replace(regexShort, 'https://www.youpak.com/watch/?v=$1');
}

regexFull规则的示例URL将是https://www.youtube.com/watch?v=L4iyPXHM89E

我希望将此URL更改为https://www.youpak.com/watch?v=L4iyPXHM89E

这项工作


regexShort规则的示例URL将是https://youtu.be/MkPU6P9OJv4https://youtu.be/MkPU6P9OJv4?t=10

我希望将此URL更改为https://www.youpak.com/watch?v=MkPU6P9OJv4https://www.youpak.com/watch?v=MkPU6P9OJv4?t=10

这不起作用


没有逃脱的RegexShort URL看起来像

^https://.youtu.be/(.*)$

您可以看到," Youtu"之前有一个额外的点。

尝试:

var regexShort = /^https://youtu.be/(.*)$/i;

最新更新