繁体   English   中英

Array.prototype.join在IE 8中不起作用

[英]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等于1

JScript 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM