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

241
Views
ES6 / JS: Regex para reemplazar profundizar con encadenamiento condicional

¿Cómo reemplazar profundizar con encadenamiento condicional en un proyecto de código vs?

p.ej

 delve(seo,'meta') delve(item, "image.data.attributes.alternativeText")

resultado deseado

 seo?.meta item?.image.data.attributes.alternativeText

¿Es posible usar buscar/reemplazar en Visual Studio Code? ingrese la descripción de la imagen aquí

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Propongo el siguiente RegEx:

delve\(\s*([^,]+?)\s*,\s*['"]([^.]+?)['"]\s*\)

y la siguiente cadena de formato de reemplazo:

$1?.$2

Explicación: Match delve( , un primer argumento hasta la primera coma (coincidencia perezosa), y luego un segundo argumento de cadena (no se tiene cuidado de asegurar que los corchetes coincidan ya que esto es bastante rápido y sucio de todos modos), luego el corchete de cierre de la convocatoria ) . Se tiene en cuenta el espacio en lugares razonables.

que funcionará para casos simples como delve(someVar, "key" ) pero podría fallar en casos patológicos; Siempre revise los reemplazos manualmente.

Tenga en cuenta que esto se hace explícitamente incapaz de tratar con delve(var, "abc" ) porque, hasta donde yo sé, las cadenas de formato VSC no admiten "unir" números variables de capturas por una cadena determinada. Como solución temporal, podría crear explícitamente versiones con dos, tres, cuatro, cinco... puntos y escribir los reemplazos correspondientes. La versión para dos puntos, por ejemplo, se ve así:

delve\(([^,]+?)\s*,\s*['"]([^.]+?)\.([^.]+?)['"]\s*\)

y la cadena de formato es $1?.$2?.$3 .

Usted escribe:

p.ej
delve(seo,'meta')
delve(item, "image.data.attributes.alternativeText")
resultado deseado
seo?.meta
item?.image.data.attributes.alternativeText

pero dudo mucho que esto sea intencionado, porque delve(item, "image.data.attributes.alternativeText") es de hecho equivalente a item?.image?.data?.attributes?.alternativeText en lugar del resultado deseado que describe. Para que lo maneje de esa manera, simplemente reemplace [^.] con . para que acepte cadenas que contengan cualquier carácter (incluidos los puntos).

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!