Javascript Greasemonkey脚本,用于将具有特定域的页面上的所有URL替换为不同的URL

Javascript Greasemonkey脚本,用于将具有特定域的页面上的所有URL替换为不同的URL,javascript,regex,greasemonkey,Javascript,Regex,Greasemonkey,我想用其他域替换网站上所有包含youtube.com或youtu.be域的链接 我创建了这个脚本,它成功地将所有youtube.com替换为youpak.com,但是由于某种原因,youtu.be链接没有被替换 // ==UserScript== // @name replace r/videos youtube with youpak // @namespace test // @include https://www.reddit.com/r/videos/ //

我想用其他域替换网站上所有包含
youtube.com
youtu.be
域的链接

我创建了这个脚本,它成功地将所有
youtube.com
替换为
youpak.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');
}
/==UserScript==
//@name用youpak替换r/videos youtube
//@命名空间测试
//@包括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;
对于(变量i=0;i

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

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

这很有效


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

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

这不起作用



没有转义,regexShort URL看起来像

^https://.youtu.be/(.*)$
正如你所看到的,在“youtu”之前有一个额外的点不应该在那里

尝试:

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