js split()问题

var ss="cat,bat,eat,sat,fat";
var result=ss.split(/[^\,]+/);
alert(result);//结果为["",",",",",",",",",""],
alert(result.length);//结果为6

我想问下,这个正则表达式表示的不是以逗号开始的字符串吗,,为什么他会给我多返回一个空字符???

<!DOCTYPE HTML>
<html>
<head>
<meta charset=UTF-8>
<title>recursion</title>
<style type="text/css">
</style>
<script type="text/javascript">
var ss = "cat,bat,eat,sat,fat";
// 这个意思是:以非逗号分隔,结果可想而知方括号里面的^是非的意思
    var result = ss.split (/[^\,]+/);
    alert (result);//结果为["",",",",",",",",",""],
    // 有几个当然就是几个咯
    alert (result.length);//结果为6
    
    //================
    // 纠正代码如下:
    result = ss.split(",");
    alert(result);
    alert(result.length);
</script>
</head>
<body>
</body>
</html>

追问

var ss = "cat,bat,eat,sat,fat";
现在这样,ss里只有5个数据,按非逗号的话结果不是"",",",",",",",",",这5个数据吗,,为什么最后还有一个空值呢???

追答

你是以非逗号加

形式分割的

所以

cat是个空串
bat是个
eat是个
sat是个
fat是个
还有
最后的空串是个

所以一共是6个

追问

那个能麻烦你,在说明一下下吗》???这个答案用f12也看不出说明

追答

不是告诉你了么?看不到么?还说什么呢?学不能一根筋,也不能两头堵,不然就是范伟了

温馨提示:答案为网友推荐,仅供参考
相似回答
大家正在搜