消除html标签

时间:2011-02-02 12:25:53

标签: javascript html regex

我有一个类似

的html字符串
Lorem ipsum <a href='google.com'>google <span>rulz</span></a> not sum

我想删除所有的html标签,我的意思是我想删除所有的html元素,所以字符串应该转换为(在javascript中)

Lorem ipsum not sum

我尝试匹配(并替换)它了:

<([a-z][a-z0-9]*)\b[^>]*>.+?<\/([a-z][a-z0-9]*)\b[^>]*>

问题是我得到了

Lorem ipsum </a> not sum

我认为它发生了,因为正则表达式替换“google rulz”但我希望它替换孔html标记。

有什么想法吗?

5 个答案:

答案 0 :(得分:1)

你可以使用jQuery创建一个虚拟元素并获取它的文本内容,即


<script type='text/javascript'>
d = $('div');
d.html(text);
stripped = d.text();
</script>

答案 1 :(得分:0)

您可以使用php.js strip_tags()功能。

答案 2 :(得分:0)

如果你从一个元素中检索这个文本,你可以得到它的innerText,它将返回没有html的文本。

console.log(getElementById('someId').innerText);

答案 3 :(得分:0)

<[^>]*>会匹配远程 HTML标记的任何内容。如果这还不够好,您应该使用完整的HTML解析器。

答案 4 :(得分:0)

var tags = /<\/?([a-z][a-z0-9]*)\b[^>]*>/gi