У меня есть строка, как показано ниже
https://static.example.com/uploads/image-85b2-27ee598edd99-professional-clients-jpg
Я хочу заменить .com/
на .com/resize/100x/uploads/image-85b2-27ee598edd99-professional-clients-jpg
.
Как видите, остальная часть URL такая же, я просто добавил /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');
}
}
Сопоставьте любой URL до первого /
и добавьте свой /resize/100x/
const addStr = (url) => {
return url.replace(/(https?://.*?)//, '$1/resize/100x/');
}
console.info(addStr('http://static.example.com/uploads/image-85b2-27ee598edd99-professional-clients-jpg'));
console.info(addStr('https://static.example.io/uploads/image-85b2-27ee598edd99-professional-clients-jpg'));
console.info(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.info(addStr('http://static.example.com/uploads/image-85b2-27ee598edd99-professional-clients-jpg'));
console.info(addStr('https://static.example.io/uploads/image-85b2-27ee598edd99-professional-clients-jpg'));
console.info(addStr('https://static.example.co.uk/uploads/image-85b2-27ee598edd99-professional-clients-jpg'));
console.info(addStr('http://localhost/uploads/image-85b2-27ee598edd99-professional-clients-jpg'));