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

How to catch empty string when using split length

本文关键字:字符串 拆分      更新时间:2023-09-26

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

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

希望有人可以在这里提供帮助并就我的问题提供一些反馈:相对于空字符串,计算逗号分隔字符串内的 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;

你的代码有点冗长。怎么样

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

或更短但更晦涩:

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

甚至

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

可以缩短为

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

题外话:如果你的字符串来自用户输入,我建议通过使用正则表达式/'s*,'s*/拆分来允许空格