javascript - 如何在不创建 HtmlElement 的情况下从 HTML 字符串中提取 textContent?
问题描述
我最近遇到了一个问题,我需要先从数据中去除 html 标签,然后再将其显示在屏幕上。
数据是这样来的:
<p><span style="color: rgb(68, 68, 68);">Sample data which i want to get.</span></p>
我尝试
了什么
为了解决这个问题,我创建了一个 div,添加了 htmlinnerHtml
并使用textContent
.
function strip(html)
{
var tmp = document.createElement("DIV");
tmp.innerHTML = html;
return tmp.textContent || tmp.innerText || "";
}
以上代码取自stackoverflow。
我担心的问题
是这样做是否正确,因为每次调用strip
函数时都会创建额外的 div。
问题
有没有更好的方法来做到这一点?
解决方案
也许这对你有帮助。
以下示例使用另一种方法。它不是提取文本,而是使用正则表达式删除标签,假设您的数据是 html 字符串。
限制:如果您的文本内容包含 < 或 > 字符,则此正则表达式不起作用。如果这是一个问题,您需要修改正则表达式。
var str = '<p><span style="color: rgb(68, 68, 68);">Sample data which i want to get.</span></p>';
var str2 = '<p><span style="color: rgb(68, 68, 68);">Sample data which i <strong>want</strong> to get.</span></p>';
function strip(html) {
return html.replace(/<\s*[^>]*>/gi, '');
}
console.log(strip(str));
console.log(strip(str2));
推荐阅读
- oracle-cloud-infrastructure - 一个始终免费的计算可以在一个月或一段时间内使用的免费网络带宽总量
- javascript - 以表格形式生成报告 - JS
- mongodb - MongoDB嵌入
- java - Apache Poi - Java-:如何使用 Apache POI 将包含空行的文本作为单独的段落添加到 Word 文档中?
- odata - 列表绑定未绑定到 XSODATA 服务的列表
- reactjs - 有没有办法转移客户端 React 状态/道具来完成后端快递(api 调用)
- bash - 如何在 bash 中创建未知数量的或运算符?
- java - 从excel运行前200个用户后如何退出浏览器并重新启动我的整个脚本?
- c# - 执行具有分层依赖关系的任务的不确定列表 C#
- python - python selenium 监听http请求