3 回答

TA貢獻1815條經驗 獲得超13個贊
嘗試此操作,注意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;
}
添加回答
舉報