需要正则表达式来查找任何HTML标记之外的文本 像
<tag>Some</tag>Text, you have <tag url="something">Here</tag>
结果:
"Text, you have "
此处,标记可以是未指定的任何HTML标记。正则表达式应忽略文本和返回文本之间的标签和文本,这些文本位于所有标记之外
答案 0 :(得分:5)
对于html内容解析,最好进行dom解析而不是正则表达式
var string = '<tag>Some</tag>Text, you have <tag url="something">Here</tag>';
var tmp = document.createElement('div');
tmp.innerHTML = string;
var lst = [];
for (var i = 0; i < tmp.childNodes.length; i++) {
if (tmp.childNodes[i].nodeType == Node.TEXT_NODE) {
lst.push(tmp.childNodes[i].nodeValue);//use trim if needed
}
}
var text = lst.join('');
snippet.log(text)
<!-- Provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
答案 1 :(得分:2)
只需删除所有标记。
var s = '<tag>Some</tag>Text, you have <tag url="something">Here</tag>';
alert(s.replace(/<(\w+)\b[^<>]*>[\s\S]*?<\/\1>/g, ''))