f.a*_*ian 179 javascript html-parsing
可能重复:
从文本JavaScript中删除HTML
如何从JavaScript中的字符串中删除HTML?
Rea*_*ven 273
cleanText = strInputCode.replace(/<\/?[^>]+(>|$)/g, "");
Run Code Online (Sandbox Code Playgroud)
Tim*_*own 230
使用浏览器的解析器可能是当前浏览器中最好的选择.以下内容将起作用,并带有以下警告:
<div>元素中有效.包含在<body>or <html>或<head>tag中的HTML 在a中无效<div>,因此可能无法正确解析.textContent(DOM标准属性)和innerText(非标准)属性不相同.例如,textContent将包含<script>元素内的文本而innerText不会(在大多数浏览器中).这仅影响IE <= 8,这是唯一不支持的主要浏览器textContent.<script>元素.null<img onerror='alert(\"could run arbitrary JS here\")' src=bogus>码:
var html = "<p>Some HTML</p>";
var div = document.createElement("div");
div.innerHTML = html;
var text = div.textContent || div.innerText || "";
Run Code Online (Sandbox Code Playgroud)
Fel*_*lix 49
var html = "<p>Hello, <b>World</b>";
var div = document.createElement("div");
div.innerHTML = html;
alert(div.innerText); // Hello, World
Run Code Online (Sandbox Code Playgroud)
这是最好的方法,你让浏览器做它最擅长的事情 - 解析HTML.
编辑:如下面的评论中所述,这不是最跨浏览器的解决方案.最跨浏览器的解决方案是以递归方式遍历元素的所有子元素并连接您找到的所有文本节点.但是,如果你正在使用jQuery,它已经为你做了:
alert($("<p>Hello, <b>World</b></p>").text());
Run Code Online (Sandbox Code Playgroud)
查看文本方法.
Til*_*ill 26
我知道这个问题有一个公认的答案,但我觉得它在所有情况下都不起作用.
为了完整性,因为我花了太多时间在这上面,这就是我们所做的:我们最终使用了php.js中的一个函数(对于那些更熟悉PHP的人来说这是一个非常好的库,但是现在每个人都做一些JavaScript然后):
http://phpjs.org/functions/strip_tags:535
它似乎是唯一成功处理我填充到我的应用程序中的所有不同类型输入的JavaScript代码.也就是说,不破坏它 - 请参阅我对上述<script />标签的评论.
| 归档时间: |
|
| 查看次数: |
330205 次 |
| 最近记录: |