Javascript 消除html标记
我有一个html字符串,比如Javascript 消除html标记,javascript,html,regex,Javascript,Html,Regex,我有一个html字符串,比如 Lorem ipsum <a href='google.com'>google <span>rulz</span></a> not sum 我试着用以下方法匹配(并替换): <([a-z][a-z0-9]*)\b[^>]*>.+?<\/([a-z][a-z0-9]*)\b[^>]*> ]*>。+?]*> 问题是,我得到了 Lorem ipsum </a> not s
Lorem ipsum <a href='google.com'>google <span>rulz</span></a> not sum
我试着用以下方法匹配(并替换):
<([a-z][a-z0-9]*)\b[^>]*>.+?<\/([a-z][a-z0-9]*)\b[^>]*>
]*>。+?]*>
问题是,我得到了
Lorem ipsum </a> not sum
Lorem ipsum not sum
我支持这种情况,因为正则表达式替换了“GoogleRulz”,但我希望它替换hole html标记
有什么想法吗?你可以使用这个函数。你可以使用这个函数。如果你从一个元素中检索这个文本,你可以得到它的
innerText
,它将返回没有html的文本
console.log(getElementById('someId').innerText);
如果从元素中检索此文本,则可以获取其
innerText
,它将返回不带html的文本
console.log(getElementById('someId').innerText);
]*>
匹配任何看起来像HTML标记的内容。如果这还不够好,您应该使用一个成熟的HTML解析器。]*>
匹配任何看起来像HTML标记的内容。如果这还不够好,您应该使用成熟的HTML解析器。您可以使用jQuery创建虚拟元素并获取其文本内容,即
<script type='text/javascript'>
d = $('div');
d.html(text);
stripped = d.text();
</script>
d=$('div');
d、 html(文本);
stripped=d.text();
您可以使用jQuery创建虚拟元素并获取其文本内容,即
<script type='text/javascript'>
d = $('div');
d.html(text);
stripped = d.text();
</script>
d=$('div');
d、 html(文本);
stripped=d.text();
试试看
var tags=/]*>/gi
试试看
var tags=/]*>/gi
您不使用HTML解析器的原因是什么?您是否尝试过替换任何标记,而不是删除一个正则表达式中的开始标记和结束标记:
?这样,开始标记和结束标记将被分别删除,无需担心匹配它们。您不使用HTML解析器的原因是什么?您是否尝试过替换任何标记,而不是在一个正则表达式中删除开始标记和结束标记:
?这样,开始标记和结束标记将被分别删除,不必担心匹配它们;d、 html(文本);d、 children().remove();stripped=d.text()事实上,这不是我会使用的,但我可以使用d=$('div');d、 html(文本);d、 children().remove();stripped=d.text()代码>