Javascript Regex для разделения строки на массив сгруппированных / смежных символов - PullRequest
2 голосов
/ 21 сентября 2011

Я пытаюсь сделать то же самое, что делает этот парень, только он делает это в 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]);
    }

Что на самом деле работает вроде / сорта ... но не совсем ... Я явно слишком много делюсь илииначе мне не пришлось бы исключать фиктивные записи с помощью манипуляции с индексом +3.

Как получить чистый массив, содержащий только то, что я хочу?

Спасибо -

1 Ответ

7 голосов
/ 21 сентября 2011

Ваше регулярное выражение в порядке, вы просто используете неправильную функцию.Использовать String.match, а не String.split:

var matches = 'aaaabbbbczzxxxhhnnppp'.match(/((.)\2*)/g);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...