JavaScript使用多字符分割字符串时如何避免空元素?
解决字符串分割时的空元素问题
你用/[[\].]/分割后出现空元素,是因为这个正则会把每个分隔符单独作为分割点,当]和.连续出现时,两者之间没有内容,就会生成空字符串。
直接修改正则,让它匹配一个或多个连续的分隔符,就能把连续的分隔符当成一个分割单元,避免空元素:
const str = "income[1].selected"; const result = str.split(/[[\].]+/); console.log(result); // 输出: ['income', '1', 'selected']
这里的+是正则量词,代表匹配前面的字符([、]、.中的任意一个)一次或多次,连续的分隔符会被合并成一个分割点,自然就不会出现空元素了。
如果不想改正则,也可以在分割后用filter过滤掉空字符串:
const str = "income[1].selected"; const result = str.split(/[[\].]/).filter(item => item !== ''); console.log(result); // 输出: ['income', '1', 'selected']
内容的提问来源于stack exchange,提问作者Leff
相关产品推荐
相关产品推荐

