Replace parts of a URL in Greasemonkey

∥☆過路亽.° 提交于 2020-01-05 04:05:41

问题


I'm trying to replace a part of url using a Greasemonkey script, but having hard time to achieve what I'm trying to do.

Original Urls are like:

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

What I want to achieve is this:

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

I just want to replace thumb with full and cut out the x1.example.to, x2.example.to, x3.example.to, x4.example.to etc.. part completely from the original URL so new urls will be starting like example.to/images/full/

How do I achieve this?

I have found a Greasemonkey script from this answer and did try to work out but failed.

Here's what i did so far.

// ==UserScript==
// @name           Example Images Fixer
// @namespace      Example
// @description    Fixes image galleries
// @include        http://*.example.to/*
// ==/UserScript==

var links = document.getElementsByTagName("a"); //array
var regex = /^(http:\/\/)([^\.]+)(\.example\.to\/images\/thumb/\)(.+)$/i;
for (var i=0,imax=links.length; i<imax; i++) {
   links[i].href = links[i].href.replace(regex,"$4full/$5");
}

Any help on that?


回答1:


You're forgetting to put the http:// part in your replacement URL:

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

and then:

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

You can see the results here.




回答2:


Here is an example of what can be done:

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"
*/

Here is the Fiddle



来源:https://stackoverflow.com/questions/24984576/replace-parts-of-a-url-in-greasemonkey

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!