我正在尝试使用此功能从value
function split(val){
return val.split( /,\s*/ );
};
value = "Jim, ";
var terms = split( value );
terms;
所有其他浏览器,包括 IE9,都会产生terms = ["Jim", ""]
但是,IE8 和可能的 IE7 会产生这个:terms = ["Jim"]
有没有人有任何可能适用于 IE8 的建议或替代方案?
我正在尝试使用此功能从value
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*$/, '');
}
split()
显然,在 IE8 及更早版本中,使用正则表达式参数时会忽略空字符串匹配。字符串参数可以正常工作:
'axx'.split('x') // All browsers: ["a", "", ""]
'axx'.split(/x/) // IE6/7/8: ["a"], all other browsers: ["a", "", ""]
您将不得不重写正则表达式。
试试这个。
String.prototype.trim = String.prototype.trim || function() {
return this.replace(/^\s+|\s+$/g, '');
}
function split( str ){
return (""+str).trim().split( /\,/ );
}