var str = "HTTP/1.0,,HTTP/1.1,,";
var strArray = str.split(",");
alert(strArray.length); // ---> 5
var strArray2 = str.split(/,/);
alert(strArray2.length); // ---> 2如何解释? 正则表达式不保留空值吗? 为什么不保留呢
var strArray = str.split(",");
alert(strArray.length); // ---> 5
var strArray2 = str.split(/,/);
alert(strArray2.length); // ---> 2如何解释? 正则表达式不保留空值吗? 为什么不保留呢
加个g
这个问题目前我的感觉,只能归结于IE和FF解析引擎不一样..没找到相关说明 只能先记住测试结果了..
TO #3
我认为这个问题不应该这么理解..split()只是以一个字符串做为分割符 进行分割
所以/,/已经是,字符串了 与g无关..
而且测试下可以发现IE ,FF 解析结果是不一样的
<script type="text/javascript">
<!--
var str = "a,,b,,";
alert(str.split(',')); // IE: a,,b,, FF: a,,b,,
alert(str.split(/,/)); // IE: a,b FF: a,,b,,
//-->
</script>
刚才在as下也试了下,结果和FF一致的,那就是IE自作聪明的//掐头去尾了...所以首选split(",")
关键是这个的差别.
alert(str.split(/,/));
这种情况下,ie/ff都按字符,(逗号)切分,不论是否有修正符g,都切分所有.
但是ie切分后的获得的数组自动把空值移除,而ff保留空值元素.
只能姑且认为IE就是不保留空值了呵呵
谢谢各位呵呵