我正在使用JavaScript中的split函数。在Firefox和Chrome中工作正常,但是在IE中调用split函数时会出现错误。有没有其他类似split的函数可以使用?
我正在使用JavaScript中的split函数。在Firefox和Chrome中工作正常,但是在IE中调用split函数时会出现错误。有没有其他类似split的函数可以使用?
该方法在IE8中完全支持。
该方法在IE6中也完全支持。
实时示例,使用.split(/\s+/)
在IE9标准模式、IE9 IE8模式、IE9 IE7模式和IE9怪异模式下进行了测试。都能正常工作。
编辑:
事实证明,你的实际问题是使用.textContent
。这在IE中不起作用。有两个替代方案。
特性检测:
var str;
if (el.textContent) {
str = el.textContent;
} else {
str = el.innerText;
}
.nodeValue:
var str = el.nodeValue;
.textContent
。请使用 .nodeValue
。 - Raynos当你使用数字而不是字符串进行拆分时,Javascript会抛出“对象不支持此属性”的错误。
确保在变量中包含字符串值。
在处理字符串分割时,IE 9 及以下版本与大多数其他浏览器至少存在一个差异 -
var s='在某些浏览器中,您可以使用括号分隔符“split”字符串,并将“分离的”位返回到数组中。';
s.split(/( ?['"] ?)/).join('\n')
/***************************************************/
Firefox 4.0.1>>
In some browsers, you can
"
split
"
a string on a parenthized delimeter and return the
"
split-off
"
bits in the array.
/***************************************************/
MSIE 8.0>>
In some browsers, you can
split
a string on a parenthized delimeter and return the
split-off
bits in the array.
/***************************************************/
MSIE 9.0>>
In some browsers, you can
"
split
"
a string on a parenthized delimeter and return the
"
split-off
"
bits in the array.
split()
的错误) - Spudley"x||y".split('|')
会返回一个只有两个结果 "x" 和 "y" 的数组,而不是三个。我相信这是IE6造成的问题;我已经没有IE6的副本来验证这一点,但我记得几年前遇到过这个问题直到我发现了这个漏洞。 - Spudley