javascript - 使用 JavaScript 从 HTML 字符串中提取文本

标签 javascript html string text extract

我正在尝试使用 JS 函数获取 HTML 字符串的内部文本(字符串作为参数传递)。这是代码:

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>");

问题是控制台上没有打印任何内容(*content_holder* 保持为空)。我认为问题是由 === 运算符引起的。

最佳答案

创建一个元素,将 HTML 存储在其中,并获取其 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>"));


这是一个允许您在节点之间留有空格的版本,尽管您可能只希望它用于 block 级元素:

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

关于javascript - 使用 JavaScript 从 HTML 字符串中提取文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28899298/

相关文章:

javascript - 如何循环检查 Javascript 文档中的字符串?

string - 在 Python 2.7 中替换字符串中的 '\n'

javascript - 如何向绘图中自动生成的刻度添加新刻度

javascript - 如何将映射值返回到以逗号分隔的对象 [] 中

javascript - HTML Canvas - 如何绘制非常细的线条?

html - 根据动态内容制作等高的div,无需javascript

javascript - 多个使用 $ 的库在 javascript 中的结果是什么

javascript - 绘制具有不重叠 Y 值的多条线

javascript - 如何将大文件存储到网络本地存储?

c++ - 将 __VA_ARGS__ 转换为字符串