Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

336
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda