javascript中字符串split方法的拆分逻辑?

"aaabbbcccdeefff".split(/(\w)\1+/)

这句代码的输出结果为:

["", "a", "", "b", "", "c", "d", "e", "", "f", ""]

但是:

"aaabbbcccdeefff".replace(/(\w)\1+/g,"")

输出结果为:

"d"

所以按照我的理解,拆分结果应该为:

[d]

那里出问题了呢?


哈士奇WWW
浏览 693回答 2
2回答

心有法竹

作为 split 参数的正则表达式如果包换捕捉, 则捕捉的结果会被拼在结果数组中.所以结果中会出现 a,b,c,e,f. 因为他们是(\w)捕捉的结果, ""则是由于每次迭代时分割符出现在开始或结尾则会产生一个""字符.如果想达到预期的效果输出 [d], 可以这样做:"aaabbbcccdeefff".replace(/(\w)\1+/g, '').split('')
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript