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

216
Views
¿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 answers
Answer question

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 Report

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