将 URL 的单独部分替换为 Javascript
Replacing separate parts of an URL with Javascript
我正在尝试制作一个小书签,它将成为 URL 的一部分并重定向到新的 URL,但我需要更改 URL 的两个部分是分开的。
基数 URL 可以是:
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
想出一些东西,但我是新手,无法弄清楚。
您可以使用 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/dataraw')
// go to the new page
window.location.href = newUrl;
一般情况下,您可以使用 String.prototype.replace 替换字符串的一部分。根据您需要匹配的灵活性,您可以将正则表达式调整为或多或少 'matchy'.
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)
我正在尝试制作一个小书签,它将成为 URL 的一部分并重定向到新的 URL,但我需要更改 URL 的两个部分是分开的。
基数 URL 可以是:
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
想出一些东西,但我是新手,无法弄清楚。
您可以使用 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/dataraw')
// go to the new page
window.location.href = newUrl;
一般情况下,您可以使用 String.prototype.replace 替换字符串的一部分。根据您需要匹配的灵活性,您可以将正则表达式调整为或多或少 'matchy'.
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)