javascript正则表达式拆分不跨浏览器
我试图用三个关键字拆分字符串,如下所示:javascript正则表达式拆分不跨浏览器,javascript,regex,split,Javascript,Regex,Split,我试图用三个关键字拆分字符串,如下所示: var option=$(this).text().split(/(To:|From:|Line:)/); $(this).text()用于测试“从:环形码头到:Manly线:F1 Manly” 所有“普通”浏览器都返回7个元素的数组,但IE7&8返回3个元素的数组 有什么想法吗?正则表达式拆分在所有浏览器中的工作方式都不一样,如所述 Internet Explorer从结果中排除几乎所有空值 数组(例如,当两个分隔符在 数据,或当分隔符出现在数据的
var option=$(this).text().split(/(To:|From:|Line:)/);
$(this).text()
用于测试“从:环形码头到:Manly线:F1 Manly”
所有“普通”浏览器都返回7个元素的数组,但IE7&8返回3个元素的数组
有什么想法吗?正则表达式拆分在所有浏览器中的工作方式都不一样,如所述
- Internet Explorer从结果中排除几乎所有空值 数组(例如,当两个分隔符在 数据,或当分隔符出现在数据的开头或结尾时)。 这对我来说没有任何意义,因为IE确实包含空值 当使用字符串作为分隔符时
- Internet Explorer和Safari 不将捕获括号的值拼接到返回的数组中 (此功能可用于简单的解析器等。)
- 火狐 不会将未定义的值拼接到返回的数组中作为结果 非参与捕获组
- Internet Explorer、Firefox和 Safari还有各种附加的边缘案例bug,但它们并不遵循这些bug 拆分规范(实际上相当复杂)
var s = s.split(/To:|From:|Line:/);
如果您需要分隔符,因为它们的顺序可能会改变,那么您最好在
\b
上拆分,并检查所有字符串。那么IE7/8中会发生什么情况?它会弹出一个包含三个未定义值的数组…您尝试拆分的文本是什么?所有浏览器都一样吗?您是否尝试console.log($(this.text())代码>?在ID 7/8中,它给出了“[“环形码头”、“曼利”、“F1曼利”]”