我正在尝试从 Javascript 中的字符串中删除所有 html 标签。这是我所拥有的......我不知道为什么它不起作用......任何知道我做错了什么?
<script type="text/javascript">
var regex = "/<(.|\n)*?>/";
var body = "<p>test</p>";
var result = body.replace(regex, "");
alert(result);
</script>
非常感谢!
我正在尝试从 Javascript 中的字符串中删除所有 html 标签。这是我所拥有的......我不知道为什么它不起作用......任何知道我做错了什么?
<script type="text/javascript">
var regex = "/<(.|\n)*?>/";
var body = "<p>test</p>";
var result = body.replace(regex, "");
alert(result);
</script>
非常感谢!
试试这个,注意 HTML 的语法太复杂了,正则表达式不可能 100% 正确:
var regex = /(<([^>]+)>)/ig
, body = "<p>test</p>"
, result = body.replace(regex, "");
console.log(result);
如果您愿意使用诸如jQuery 之类的库,您可以简单地执行以下操作:
console.log($('<p>test</p>').text());
这是一个老问题,但我偶然发现了它,并认为我会分享我使用的方法:
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;
sanitized
现在将包含: "some text and some more text"
简单,不需要 jQuery,即使在更复杂的情况下也不应该让您失望。
这对我有用。
var regex = /( |<([^>]+)>)/ig
, body = tt
, result = body.replace(regex, "");
alert(result);
下面是 TextAngular(WYSISYG 编辑器)是如何做到的。我还发现这是最一致的答案,即 NO REGEX。
@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;
}
这是 HTML 标记和 等的解决方案,您可以删除和添加条件以获取没有 HTML 的文本,您可以将其替换为任何内容。
convertHtmlToText(passHtmlBlock)
{
str = str.toString();
return str.replace(/<[^>]*(>|$)| |‌|»|«|>/g, 'ReplaceIfYouWantOtherWiseKeepItEmpty');
}