我正在尝试用这个正则表达式进行拆分({[^{}]*})
在 javascript 中,我在 IE7 和 FF 中得到不同的结果。 Firefox 结果是正确的。
<style>
.box.round {
border-radius: 10px;
}
</style>
<script>
jQuery(function ($) {
$('style').each(function () {
text = $(this).html();
alert(text);
alert(text.split(/({[^{}]*})/));
// result in FF: .box.round ,{border-radius: 10px;},
// result in IE7: .box.round
});
});
</script>
Update有没有办法更改正则表达式,使其在 IE7 中也能工作,而无需添加 javascript 库?
See 这篇旧博文寻找一个可能的解决方案来解决捕获群体的处理变化.split()
正则表达式。
摘自那篇文章:
- Internet Explorer 从结果数组中排除几乎所有空值(例如,当两个分隔符在数据中彼此相邻出现时,或者当分隔符出现在数据的开头或结尾时)。这对我来说没有任何意义,因为 IE 在使用字符串作为分隔符时确实包含空值。
- Internet Explorer 和 Safari 不会将捕获括号的值拼接到返回的数组中(此功能对于简单的解析器等非常有用)
- Firefox 不会将未定义的值拼接到返回的数组中作为非参与捕获组的结果。
- Internet Explorer、Firefox 和 Safari 存在各种额外的边缘情况错误,它们不遵循拆分规范(实际上相当复杂)。
利维森的XRegExp库确实很小但很有用,并且包含修复程序。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)