替换Greasemonkey中URL的部分内容

时间:2014-07-27 19:09:40

标签: regex greasemonkey

我尝试使用Greasemonkey脚本替换部分网址,但很难实现我想要做的事情。

原始网址如下:

http://x1.example.to/images/thumb/50/157/1571552600.jpg
http://x2.example.to/images/thumb/50/120/1201859695.jpg
http://x3.example.to/images/thumb/50/210/2109983330.jpg

我想要实现的目标是:

http://example.to/images/full/50/157/1571552600.jpg
http://example.to/images/full/50/120/1201859695.jpg
http://example.to/images/full/50/210/2109983330.jpg

我只想将拇指替换为完整并删除 x1 .example.to, x2 .example.to, x3 .example.to, x4 .example.to等。完全来自原始网址,因此新的网址将像{{1}一样开始}

我如何实现这一目标?

我找到了来自this answer的Greasemonkey脚本,但确实试图解决但失败了。

这是我到目前为止所做的事情。

example.to/images/full/

对此有何帮助?

2 个答案:

答案 0 :(得分:4)

您忘记将http://部分放入替换网址中

/^(https?:\/\/)[^.]+\.(example\.to\/images\/)thumb\/(.+)$/i

然后:

.replace(regex, "$1$2full/$3");

您可以看到结果here

答案 1 :(得分:0)

以下是可以做的事情的一个例子:

var urls = ['http://x1.example.to/images/thumb/50/157/1571552600.jpg',
'http://x2.example.to/images/thumb/50/120/1201859695.jpg',
'http://x3.example.to/images/thumb/50/210/2109983330.jpg'];


for (var i = 0, len = urls.length; i < len; i++) {

    urls[i] = 
      urls[i].replace(/:\/\/[^\.]+\.(example.to\/images\/)thumb/, '://$1full');
    console.log(urls[i]);

}

/* result
"http://example.to/images/full/50/157/1571552600.jpg"
"http://example.to/images/full/50/120/1201859695.jpg"
"http://example.to/images/full/50/210/2109983330.jpg"
*/

以下是Fiddle