为了账号安全,请及时绑定邮箱和手机立即绑定

使用Regex删除Javascript中的HTML标签

使用Regex删除Javascript中的HTML标签

我正在尝试从Javascript的字符串中删除所有html标记。这是我所拥有的...我不知道为什么它不起作用....有人知道我在做什么错吗?<script type="text/javascript">var regex = "/<(.|\n)*?>/";var body = "<p>test</p>";var result = body.replace(regex, "");alert(result);</script>非常感谢!
查看完整描述

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());


查看完整回答
反对 回复 2019-10-16
?
森栏

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,即使在更复杂的情况下也不应让您失望:)


詹姆士


查看完整回答
反对 回复 2019-10-16
?
www说

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;

}


查看完整回答
反对 回复 2019-10-16
  • 3 回答
  • 0 关注
  • 645 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信