我试图制作一个可以参与网址并重定向到新网址的书签,但我需要更改两个独立的网址。
基本网址可以是:
78.media.tumblr.com / fc87fac5ea0d88e1e22a214d25a169ee / tumblr_p3fjmdiF7f1r9qk1io1的 _1280 .PNG
我需要它像这样结束:
s3.amazonaws.com/data.tumblr.com / fc87fac5ea0d88e1e22a214d25a169ee / tumblr_p3fjmdiF7f1r9qk1io1的 _raw .PNG
所以我需要更换" 78.media.tumblr.com" 和" 1280"
我尝试使用window.location.assign
和location.href.replace
来提出一些问题,但我很新,无法弄清楚。
答案 0 :(得分:1)
您可以使用regex和window.location.href
执行此操作。这是假设你只是看着不倒翁。如果你不这样做,那么正则表达式中会有另一个步骤。
// first get the url
var url = window.location.href;
// Use regex to keep only the parts we want and replace the others
var newUrl = url.replace(/.*(\.tumblr.*\_).*(\..*)/, 'http://s3.amazonaws.com/data$1raw$2')
// go to the new page
window.location.href = newUrl;
答案 1 :(得分:0)
通常,您可以使用String.prototype.replace替换字符串的各个部分。根据您需要匹配的灵活性,您可以将正则表达式调整为或多或少匹配'。
const startUrl = '78.media.tumblr.com/fc87fac5ea0d88e1e22a214d25a169ee/tumblr_p3fjmdiF7f1r9qk1io1_1280.png'
const endUrl = 's3.amazonaws.com/data.tumblr.com/fc87fac5ea0d88e1e22a214d25a169ee/tumblr_p3fjmdiF7f1r9qk1io1_raw.png'
const tumblerRegex = /.*\.tumblr\.com/
const numberRegex = /_\d{4}/
function transform (start) {
return start.replace(tumblerRegex, 's3.amazonaws.com/data.tumblr.com').replace(numberRegex, '_raw')
}
console.log(transform(startUrl) == endUrl)