"aaabbbcccdeefff".split(/(\w)\1+/)这句代码的输出结果为:["", "a", "", "b", "", "c", "d", "e", "", "f", ""]但是:"aaabbbcccdeefff".replace(/(\w)\1+/g,"")输出结果为:"d"所以按照我的理解,拆分结果应该为:[d]那里出问题了呢?
2 回答
心有法竹
TA贡献1866条经验 获得超5个赞
作为 split 参数的正则表达式如果包换捕捉, 则捕捉的结果会被拼在结果数组中.
所以结果中会出现 a,b,c,e,f. 因为他们是(\w)
捕捉的结果, ""
则是由于每次迭代时分割符出现在开始或结尾则会产生一个""
字符.
如果想达到预期的效果输出 [d]
, 可以这样做:
"aaabbbcccdeefff".replace(/(\w)\1+/g, '').split('')
添加回答
举报
0/150
提交
取消