我有一個如下的字串
https://static.example.com/uploads/image-85b2-27ee598edd99-professional-clients-jpg
我想要的是替換.com/為.com/resize/100x/uploads/image-85b2-27ee598edd99-professional-clients-jpg.
如您所見,網址的其余部分與我剛剛添加的/resize/100x/相同.com。
現在,這些鏈接可以帶有任何域擴展名,例如 .io、.com、.app、.net、.gov 等。
我需要適合所有人的東西。我有以下解決方案,但它僅適用于 .io 和 .com。如果我繼續這樣做,那么下面的函式很容易變得混亂。知道如何通過 RegExp 來實作這一點嗎?
const addStr = (url) => {
if (url.includes('io')) {
return url.replace('.io', '.io/resize/100x');
}
if (url.includes('com')) {
return url.replace('.com', '.com/resize/100x');
}
}
uj5u.com熱心網友回復:
匹配任何網址直到第一個/并附加您的/resize/100x/
const addStr = (url) => {
return url.replace(/(https?:\/\/.*?)\//, '$1/resize/100x/');
}
console.log(addStr('http://static.example.com/uploads/image-85b2-27ee598edd99-professional-clients-jpg'));
console.log(addStr('https://static.example.io/uploads/image-85b2-27ee598edd99-professional-clients-jpg'));
console.log(addStr('https://static.example.co.uk/uploads/image-85b2-27ee598edd99-professional-clients-jpg'));
或使用URL api
const addStr = (urlStr) => {
let url = new URL(urlStr);
url.pathname = '/resize/100x' url.pathname;
return url.toString();
}
console.log(addStr('http://static.example.com/uploads/image-85b2-27ee598edd99-professional-clients-jpg'));
console.log(addStr('https://static.example.io/uploads/image-85b2-27ee598edd99-professional-clients-jpg'));
console.log(addStr('https://static.example.co.uk/uploads/image-85b2-27ee598edd99-professional-clients-jpg'));
console.log(addStr('http://localhost/uploads/image-85b2-27ee598edd99-professional-clients-jpg'));
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/445321.html
標籤:javascript 网址
