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

132
Views
¿Cómo hacer que la siguiente expresión regular coincida y reemplace las comillas dobles no cerradas?

El siguiente código reemplaza las comillas dobles rectas con comillas dobles rizadas:

 const input = `"Line 1" "Line 2 "Line 3" Line 4` const output = input.replace(/\"(.*?)(\")/g, '“$1”') console.log(output)

Sin embargo, hay un problema. A veces, una línea no tiene una comilla doble de cierre (lo que indica que las comillas continúan en la línea de abajo). Entonces la comilla doble de apertura no será reemplazada:

 `“Line 1$1” "Line 2 “Line 3$1” Line 4`

¿Cómo modificar la expresión regular para que también reemplace las comillas dobles de apertura que no son seguidas por una comilla doble de cierre?

Salida deseada:

 `“Line 1$1” “Line 2 “Line 3$1” Line 4`
about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

Iría en 2 replace() sucesivos, si está bien:

  • uno para almacenar en caché el formulario "...'"
  • otro para atrapar a los restantes "...
 const output = input .replace(/\"(.*?)(\")/g, '“$1”') .replace(/\"(.*)/g, '“$1”')

Pero no entendí si quería hacer coincidir los resultados de varias líneas en una cadena final única, o simplemente agregar comillas al final de cada línea

about 4 years ago · Juan Pablo Isaza Report

0

  1. elemento de la lista

 const input = `"Line 1" "Line 2 "Line 3" Line 4` const output = input.replace(/"([^"/]*)"/g, '“$1”') console.log(output)

about 4 years ago · Juan Pablo Isaza Report

0

Puedes usar

 .replace(/^"([^"\n\r]*)"?$/gm, "“$1”")

Vea la demostración de expresiones regulares . La expresión regular coincide con todas las ocurrencias que no se superponen ( g ), mientras que el inicio de las líneas coincide con ^ y el final de las líneas con $ (debido a m ) y significa

  • ^ - comienzo de una línea
  • " - una comilla doble
  • ([^"\n\r]*) - Grupo 1: cualquier cero o más caracteres que no sean " , CR y LF
  • "? - un carácter opcional "
  • $ - final de cualquier línea.

Vea la demostración de JavaScript:

 const input = `"Line 1" "Line 2 "Line 3" Line 4` const output = input.replace(/^"([^"\n\r]*)"?$/gm, '“$1”') console.log(output)

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!