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

时间:2013-12-10 13:10:38

标签: javascript regex

以下正则表达式应该替换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的行为不同,但为什么它们会产生不同的结果呢?

1 个答案:

答案 0 :(得分:1)

你应该从不使用正则表达式来完成这类任务。而是使用JavaScript DOM功能:

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