如何在使用分割长度时捕获空字符串

时间:2014-11-29 11:04:53

标签: javascript string split

在空字符串上使用JS split函数将返回1,这当然是有道理的。 我有一种情况需要在逗号分隔的字符串中计算ID的数量。当在空字符串上使用string.split(',').length时,它将返回1,这将与字符串内部的ID的实际数量不对应(但这只是拆分的默认行为,因为返回单个 - 空 - 元素)。

为了抓住这个,我写了下面的代码。但有些事情告诉我,这不是最优秀的解决方案。我想改进下面的代码,从而更好地理解最佳实践。

希望有人可以在这里提供帮助,并就我的问题提供一些反馈: 对于空字符串,以逗号分隔的字符串计算ID数量的最佳方法是什么?

var str1 = '12,16,91,89,43'; 
var str2 = '';

if(!str1)
  countRight = 0; 
else
  countRight = str1.split(',').length;

if(!str2)    
  countWrong = 0; 
else
  countWrong = str2.split(',').length;

1 个答案:

答案 0 :(得分:0)

您的代码有点冗长。 <怎么样

count = str ? str.split (',').length : 0;

或更短但更隐蔽:

count = +(str && str.split(',').length);

甚至

count = str.length && str.split (',').length;

可以缩短为

count = (str && str.split (',')).length;

偏离主题:如果您的字符串来自用户输入,我建议您使用正则表达式/\s*,\s*/

进行拆分来允许空格