Quiero reemplazar una parte de la URL:
Origin-> https://example.u-test.com/ex-2<br> Destination-> https://example.u-test.com/ex <br> Entonces, lo que quiero es eliminar la parte después de "-", pero solo en la segunda parte después de la primera barra.
Con url.replace(/ *\-[^.]*\. */g, ".") obtengo:
Quiero eliminar "-2" después de ex, no "-test" en la primera parte.
¿Cuál es la expresión regular correcta?
Puede usar la interfaz URL para eso. le permite leer y modificar fácilmente los diferentes componentes de una URL determinada.
const url = new URL("https://example.u-test.com/ex-2"); const domain = url.hostname; const pathname = url.pathname; const part = pathname.split("-")[0]; console.log(domain + part);En caso de que quiera hacer esto con expresiones regulares:
const url = "https://example.u-test.com/ex-2" const result = url.replace(/-[^-]*$/g, "") console.log(result) Explicación: si desea eliminar la parte después de la última barra inclinada o guión, debe comenzar su coincidencia en ese punto. La expresión regular anterior comienza a coincidir en el último guión ( - ) de la línea. Regex coincidirá solo con el último guión porque los caracteres subsiguientes que busca son todo excepto otro guión, seguido del final de la línea ( $ ).
- coincide con un guión ( - ) carácter[^-]* coincide con todo excepto con otro guión$ después del guión y los caracteres que no son guiones, debe estar el final de la línea