Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

328
Views
¿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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!