Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

339
Vistas
¿Cómo combinar dos expresiones regulares en una con $1 diferente?

Tengo dos expresiones regulares con diferentes $1. En la primera parte, hay una barra inclinada antes de $1, pero no hay ninguna barra inclinada en la segunda parte. Entonces, ¿cómo combinarlos en una sola expresión?

 const url = 'http://localhost////example///author/admin?query=1212'; clean_url = url.replace(/($|\?)/, "/$1").replace(/([^:]\/)\/+/g, "$1") console.log(clean_url)

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Dado que esta pregunta se refiere a @nuxtjs/redirect-module , puede usar varias redirecciones:

 redirect: [{ from: '(.*)($|\?)(.*)', to: '$1/$2$3' }, { from: '(.*)([^:]\/)\/+(.*)', to: '$1$2$3' }]

o una función de reemplazo

 redirect: [{ from: '.*(?:(?:$|\?)|(?:[^:]\/\/+)).*', to: from => from.replace(/($|\?)/, "/$1").replace(/([^:]\/)\/+/g, "$1") }]
about 4 years ago · Juan Pablo Isaza Denunciar

0

Puedes usar

 const url = 'http://localhost////example///author/admin'; clean_url = url.replace(/($|\?)|([^:]\/)\/+/g, (x,y,z) => z ? z : '/' + y); console.log(clean_url); // => http://localhost/example/author/admin/

La expresión regular ($|\?)|([^:]\/)\/+ coincide

  • ($|\?) - Grupo 1 ( y ): final de la cadena o ?
  • | - o
  • ([^:]\/)\/+ - cualquier carácter que no sea : y / (Grupo 2, z ), y luego una o más barras.

Si el Grupo 2 coincide, el reemplazo es el valor del Grupo 2, de lo contrario, el reemplazo es / + el valor del Grupo 3.

about 4 years ago · Juan Pablo Isaza Denunciar

0

No es posible simplemente "combinar" estas dos expresiones regulares, pero puede combinar las tareas, ya que ambas simplemente insertan un solo / con diferentes condiciones.

Puede combinar la lógica con mirar atrás (que puede no estar disponible en todos los navegadores todavía) y la expresión es una abominación y tendría cuidado con el rendimiento en producción; Pero es posible ;)

 const url = 'http://localhost////example///author/admin?query=1212'; clean_url = url.replace(/(?<!\?.*)(?<![:\/])(?:\/+|\/*(?=\?)|\/*$)/g, "/") console.log(clean_url)

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda