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

208
Vistas
¿Cómo eliminar etiquetas html de una cadena Html usando RegEx?

Tengo una cadena HTML que contiene nombres:

 <div class=\"ExternalClassBE95E28C1751447DB985774141C7FE9C\"><p>Tina Schmelz<br></p><p>Sascha Balke<br></p></div>

Y me gustaría eliminar todas las etiquetas html y poner '&' entre los nombres, pero no al final del último como:

 Not desired: Tina Schmelz & Sascha Balke & Desired: Tina Schmelz & Sascha Balke

Utilicé la propiedad regex y string replace.

Podría hacerlo usando reemplazar todas las etiquetas <br> con ' & ' y luego eliminar todas las etiquetas html usando estos códigos:

 let mytext = '<div class=\"ExternalClassBE95E28C1751447DB985774141C7FE9C\"><p>Tina Schmelz<br></p><p>Sascha Balke<br></p></div>'; mytext = mytext.replaceAll(/<br>/gi, ' & '); mytext = mytext.replaceAll(/<.*?>/gi, ''); console.log(mytext)

Mi pregunta: ¿cómo puedo eliminar el último ' & '? O, ¿alguien sabe mejor RegEx para completar todo en una línea? :)

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Puedes usar

 .replace(/<br>(?=(?:\s*<[^>]*>)*$)|(<br>)|<[^>]*>/gi, (x,y) => y ? ' & ' : '')

Vea la demostración de JavaScript:

 const text = '<div class="ExternalClassBE95E28C1751447DB985774141C7FE9C"><p>Tina Schmelz<br></p><p>Sascha Balke<br></p></div>'; const regex = /<br>(?=(?:\s*<[^>]*>)*$)|(<br>)|<[^>]*>/gi; console.log( text.replace(regex, (x,y) => y ? ' & ' : '') );

Detalles :

  • <br>(?=(?:\s*<[^>]*>)*$) - un <br> seguido de cero o más apariciones de cero o más espacios en blanco y luego una subcadena <...> hasta el final de la cadena
  • | - o
  • (<br>) - Grupo 1: etiqueta <br>
  • | - o
  • <[^>]*> - < , cero o más caracteres que no sean < y > y luego un > .
about 4 years ago · Juan Pablo Isaza Denunciar

0

Podrías reemplazar todas las etiquetas con el código que ya escribiste; luego use la función de división para dividir los nombres y la de unir para insertar el & en los puntos deseados.

 const myTextParsed = [] let myText = '<div class=\"ExternalClassBE95E28C1751447DB985774141C7FE9C\"><p>Tina Schmelz<br></p><p>Sascha Balke<br></p></div>'; let myTextArray = myText.split('<br>'); myTextArray = myTextArray.map(ta => { const temp = ta.replaceAll(/<.*?>/gi, '') if (temp.length > 0) { myTextParsed.push(temp) } }); myText = myTextParsed.join(' & '); console.log(myText)

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