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

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

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