3 回答
TA贡献1815条经验 获得超12个赞
尝试此操作,注意HTML语法过于复杂,以至于正则表达式在100%的时间内都是正确的:
var regex = /(<([^>]+)>)/ig
, body = "<p>test</p>"
, result = body.replace(regex, "");
console.log(result);
如果您愿意使用jQuery之类的库,则可以执行以下操作:
console.log($('<p>test</p>').text());
TA贡献1810条经验 获得超5个赞
这是一个古老的问题,但是我偶然发现了这个问题,并以为我会分享我使用的方法:
var body = '<div id="anid">some <a href="link">text</a></div> and some more text';
var temp = document.createElement("div");
temp.innerHTML = body;
var sanitized = temp.textContent || temp.innerText;
消毒后将包含: "some text and some more text"
简单,不需要jQuery,即使在更复杂的情况下也不应让您失望:)
詹姆士
TA贡献1775条经验 获得超8个赞
这是TextAngular(WYSISYG编辑器)的工作方式。我还发现这是最一致的答案,那就是“无正则表达式”。
@license textAngular
Author : Austin Anderson
License : 2013 MIT
Version 1.5.16
// turn html into pure text that shows visiblity
function stripHtmlToText(html)
{
var tmp = document.createElement("DIV");
tmp.innerHTML = html;
var res = tmp.textContent || tmp.innerText || '';
res.replace('\u200B', ''); // zero width space
res = res.trim();
return res;
}
添加回答
举报