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

244
Vistas
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 Respuestas
Responde la pregunta

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 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