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

302
Views
Extraiga el texto de la cadena HTML usando JavaScript

Estoy tratando de obtener el texto interno de la cadena HTML, usando una función JS (la cadena se pasa como argumento). Aquí está el código:

 function extractContent(value) { var content_holder = ""; for (var i = 0; i < value.length; i++) { if (value.charAt(i) === '>') { continue; while (value.charAt(i) != '<') { content_holder += value.charAt(i); } } } console.log(content_holder); } extractContent("<p>Hello</p><a href='http://w3c.org'>W3C</a>");

El problema es que no se imprime nada en la console(*content_holder* stays empty) . Creo que el problema es causado por el operador === .

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Cree un elemento, almacene el HTML en él y obtenga su textContent :

 function extractContent(s) { var span = document.createElement('span'); span.innerHTML = s; return span.textContent || span.innerText; }; alert(extractContent("<p>Hello</p><a href='http://w3c.org'>W3C</a>"));


Aquí hay una versión que le permite tener espacios entre nodos, aunque probablemente quiera eso solo para elementos a nivel de bloque:

 function extractContent(s, space) { var span= document.createElement('span'); span.innerHTML= s; if(space) { var children= span.querySelectorAll('*'); for(var i = 0 ; i < children.length ; i++) { if(children[i].textContent) children[i].textContent+= ' '; else children[i].innerText+= ' '; } } return [span.textContent || span.innerText].toString().replace(/ +/g,' '); }; console.log(extractContent("<p>Hello</p><a href='http://w3c.org'>W3C</a>. Nice to <em>see</em><strong><em>you!</em></strong>")); console.log(extractContent("<p>Hello</p><a href='http://w3c.org'>W3C</a>. Nice to <em>see</em><strong><em>you!</em></strong>",true));

over 4 years ago · Santiago Trujillo Report

0

Versión de una línea (más precisamente, una declaración):

 function extractContent(html) { return new DOMParser() .parseFromString(html, "text/html") .documentElement.textContent; }
over 4 years ago · Santiago Trujillo Report

0

textContext es una muy buena técnica para lograr los resultados deseados, pero a veces no queremos cargar DOM. Una solución tan simple será seguir la expresión regular:

 let htmlString = "<p>Hello</p><a href='http://w3c.org'>W3C</a>" let plainText = htmlString.replace(/<[^>]+>/g, '');
over 4 years ago · Santiago Trujillo 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!