javascript - IE8 以不同于所有其他浏览器的方式解析这个简单的正则表达式

标签 javascript regex internet-explorer-8

我正在尝试使用此函数从 value

创建 2 结果
function split(val){
  return val.split( /,\s*/ );
};
value = "Jim, ";
var terms = split( value );

terms;

包括 IE9 在内的所有其他浏览器将生成 terms = ["Jim", ""]

但是,IE8 和可能的 IE7 会产生这个:terms = ["Jim"]

有没有人有任何可能适用于 IE8 的建议或替代方案?

最佳答案

你最好选择:

val.split(',')

这似乎在所有浏览器中都能一致地工作。

逗号后面的任何尾随空格仍然必须在之后删除。类似的东西:

for (var i = 0; i < terms.length; i++) {
    terms[i] = terms[i].replace(/^\s\s*/, '').replace(/\s\s*$/, '');
}

显然,在 IE8 和更早版本中,当使用正则表达式参数时,split() 会忽略空字符串匹配。字符串参数工作正常:

'axx'.split('x')    // All browsers: ["a", "", ""]
'axx'.split(/x/)    // IE6/7/8: ["a"], all other browsers: ["a", "", ""]

关于javascript - IE8 以不同于所有其他浏览器的方式解析这个简单的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11144628/

相关文章:

javascript - silverstripe-module yeoman 生成器中的 JS 意外 token 错误

javascript:从复杂的id字符串中提取数组索引

html - 当 Charles 运行时错误消失,关闭时它返回

javascript - 如果有两个或多个重复字符,则返回 true

python - Python CSV 行和列中的精确匹配

css - Bootstrap 3 和 IE8 的问题(表现得像移动设备)——包括响应

jquery - 通过ajax执行post时,返回Bad Request而不是JSON结果

javascript - 实现 AJAX 超时的最佳方法是什么?

javascript - 在 Firefox 中使用 JavaScript 捕获 Tab 键

javascript - create-react-app 在构建时排除/包含/更改代码部分