Tengo una cadena como la siguiente
https://static.example.com/uploads/image-85b2-27ee598edd99-professional-clients-jpg Lo que quiero es reemplazar .com/ con .com/resize/100x/uploads/image-85b2-27ee598edd99-professional-clients-jpg .
Como puede ver, el resto de la URL es la misma. Acabo de agregar /resize/100x/ después de .com .
Ahora estos enlaces pueden venir con cualquier extensión de dominio como .io, .com, .app, .net, .gov, etc., etc.
Necesito algo que funcione con todos ellos. Tengo la siguiente solución, pero solo funciona para .io y .com. Si sigo haciendo lo mismo, entonces la siguiente función podría complicarse fácilmente. ¿Alguna idea de cómo lograr esto tal vez a través de 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'); } }Haga coincidir cualquier URL hasta el primero / y agregue su /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'));O use 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'));