Javascript正则表达式跨浏览器差异

Javascript regex cross-browser discrepancy

本文关键字:浏览器 正则表达式 Javascript      更新时间:2023-09-26

这段代码从Firefox到IE8:带来了不同的结果

var text = "[AMOUNT] MILES DEDUCTED IN [CABIN] FOR [ORIGIN]";
var splitArray = text.split(/['[']]/);
alert(splitArray.length);   

在Firefox中,警报为7。而在IE中,它给出5。

我试过了。。。

Internet Explorer 中的Javascript RegEx故障

但它不起作用。

你知道吗?谢谢

下一个代码没有经过完全测试,但在快速测试中可以正常工作:

要获得IE8和更少的分裂行为:

var text = "[AMOUNT] MILES DEDUCTED IN [CABIN] FOR [ORIGIN]";
var arr = text.match(/[^'[']]+/g);
// arr is ["AMOUNT", " MILES DEDUCTED IN ", "CABIN", " FOR ", "ORIGIN"]

获取FF拆分行为:

var text = "[AMOUNT] MILES DEDUCTED IN [CABIN] FOR [ORIGIN]";
var arr = text.match(/[^'[']]+|^(?=['[']])|[^'[']]?(?=['[']]$)|[^'[']]?(?=['[']]{2})/g);
// arr is ["", "AMOUNT", " MILES DEDUCTED IN ", "CABIN", " FOR ", "ORIGIN", ""]