[英]Array.prototype.join not working in IE 8
我在工作场景中使用了如下代码段。 在IE的最新版本中运行正常,但在IE 8版本中,join功能不起作用。
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body>
<script type="text/javascript">
var str = "TEST\n";
var lines = str.split(/\r?\n/).join("\r\n");
debugger;
</script>
</body>
</html>
如何解决这个问题? 提前致谢。
在您的特定示例中,问题可能是split()
函数,而不是join()
。 split()
是JScript 6(IE8)和更高版本的JScript之间的不同之处,如果分隔符实际上是结束还是开始于字符串,则结果数组的长度是不同的。 在这种情况下, <null>
项将被删除,这意味着:
JScript 6:
“ TEST \\ n” .split(“ \\ n”)。length等于1JScript 6+:
“ TEST \\ n” .split(“ \\ n”)。length等于2
同样,在您的示例中,这意味着IE8中的join()
在仅包含一个元素的数组上执行。
如果改为使用replace()
无论如何这似乎是一个更好的选择-您可以克服此问题,即str.replace(/\\r?\\n/g, "\\r\\n")
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.