Javascript Regex将字符串拆分为分组/连续字符数组

kma*_*man 2 javascript regex arrays string split

我正在尝试做同样的事情,这个人正在做的事情,只有他在Ruby中这样做,我试图通过Javascript来做到这一点:

基于连续字符的运行将字符串拆分为数组

它基本上只是将一个字符串分成一个连续字符数组 - 例如:

给定输入字符串

'aaaabbbbczzxxxhhnnppp'

将成为一个阵列

['aaaa','bbbb','c','zz','xxx','hh','nn','ppp']

我最接近的是:

    var matches = 'aaaabbbbczzxxxhhnnppp'.split(/((.)\2*)/g);
    for (var i = 1; i+3 <= matches.length; i += 3) {
        alert(matches[i]);
    }
Run Code Online (Sandbox Code Playgroud)

实际上有点/ sorta工作...但不是真的..我显然分裂太多,否则我不会用+3索引操作消除伪造的条目.

我怎样才能得到一个只有我想要的干净阵列?

谢谢-

Ben*_*Lee 7

你的正则表达式很好,你只是使用了错误的函数.使用String.match,而不是String.split:

var matches = 'aaaabbbbczzxxxhhnnppp'.match(/((.)\2*)/g);
Run Code Online (Sandbox Code Playgroud)