简单的JavaScript分割功能

时间:2017-07-25 12:43:32

标签: javascript arrays split

我质疑为什么我从这段代码中得到以下输出:

'Willie'.split(/[i-l]{1}/); // [ 'W', '', '', '', 'e' ]

我期待得到['W', 'e']。我不确定为什么它会在阵列中插入孔。

2 个答案:

答案 0 :(得分:4)

您要拆分单个字母,因此每个illi都被视为分隔符,字符串分割如下:

 w   i   l   l   i   e
# w   ""  ""  ""  e
# if there's no content between separators, an empty string is in place

# or what would you get with a csv string w,,,,e split on comma ?

尝试使用贪婪量词+,它会尽可能匹配模式,因此illi被视为一个分隔符:

console.log('Willie'.split(/[i-l]+/));

答案 1 :(得分:3)

您要将Willie字符串拆分为ijkl个字符。如果显示il子字符串,并且il都是分隔符,则在这些字母之间有一个空字符串 - 在结果中计算。

让我们分析整个字符串:

'W', '', 'i', '', 'l', '', 'l', '', 'i', '', 'e'

然后按il分割:

('W', ''), /i separator/, '', /l separator/, '', /l separator/, '', /i separator/, ('', 'e')

所以在串联组之后我们得到:

'W', '', '', '', 'e'