Tengo una función que compara la URL actual con las URL en una matriz para determinar si hay una coincidencia exacta. La matriz contiene URL de la página del producto, y queremos recortar la URL actual a solo 'www' a través del texto después de la primera barra. (www.etsy.com/blankets por ejemplo, en lugar de www.etsy.com/blankets/redblanket). También queremos eliminar la parte 'http' de la URL actual para deshacernos de posibles problemas con un http que no coincida con https. En la línea 3, intenté implementar una solución encontrada que no parece estar funcionando. ¿Cómo puedo modificar esto para que funcione con este propósito?

export const getRecommendations = url =>

browser.storage.local.get("competitors").then(({ competitors }) => {
const trimmed = url.substring(url.lastIndexOf('/') + 1);  //How do I modify this to be correct?
  // check if the domain exists in the known list of domains
  if (!competitors.includes(trimmed)) { 
    return 
  }
});
0
John Deacon 10 ago. 2020 a las 05:25

2 respuestas

La mejor respuesta

Array split () hace las cosas muy fáciles ...

var S = 'http://www.etsy.com/blankets/redblanket';

var A = S.split('/');

S = A[2] + '/' + A[3];

console.log(S)

El resultado en S es "www.etsy.com/blankets"

2
AlwaysHelping 10 ago. 2020 a las 02:41

Aquí está la expresión regular que probablemente desee:

let url = 'https://www.example.com/wow/neat';
const trimmed = url.replace(/^.*\/\/|\/[^\/]+\/?$/g, '');
console.log(trimmed);
1
StackSlave 10 ago. 2020 a las 02:49