使用正则表达式删除标记时,Firefox和Chrome之间存在不一致



下面的正则表达式应该替换div中的所有标记。但是,在Chrome中,字符串按预期返回"123",而在Firefox中则返回">123'。

<html>
<body>
<div><img src="" alt="Test &gt;"> 123</div>
<script type="text/javascript">
    var string = document.getElementsByTagName('div')[0].innerHTML;
    string = String(string).replace(/(<([^>]+)>)/,"");
    console.log('String: ' + string);
</script>
</body>
</html>

http://jsfiddle.net/xvdYb/

我知道是"大于"的实体让Firefox的行为有所不同,但为什么它们一开始会产生不同的结果?

对于此类任务,您应该永远不要使用regex。相反,使用JavaScriptDOM功能:

document.getElementsByTagName('div')[0].textContent.trim()

最新更新