Расщепленная строка с внутренним и внешним разделителями в Javascript - PullRequest
1 голос
/ 24 февраля 2011

В моем коде Javascript у меня есть строка, которая выглядит примерно так:

"1943[15]43[67]12[32]"

Я хочу вернуть такой массив:

["1","9","4","3","15","4","3","67","1", 2","32"]

То есть я хочучтобы отделить каждый символ, кроме чисел в скобках, которые я хочу сохранить как один элемент.

Есть ли элегантный способ сделать это?

Ответы [ 2 ]

3 голосов
/ 24 февраля 2011
var str = '1943[15]43[67]12[32]',
    matches = str.match(/\d|\[\d+\]/g);

for (var i = 0, matchesLength = matches.length; i < matchesLength; i++) {
    matches[i] = matches[i].replace(/\D/g, '');
};

console.log(matches);
// ["1", "9", "4", "3", "15", "4", "3", "67", "1", "2", "32"]

jsFiddle .

1 голос
/ 24 февраля 2011
var str = "1943[15]43[67]12[32]", 
    re = new RegExp(/(\d)|\[(\d+)\]/g), 
    out = [],
    m;

while (m = re.exec(str)) { 
  out.push(m[2] || m[0]); 
}

console.log(out); // ["1", "9", "4", "3", "15", "4", "3", "67", "1", "2", "32"]
...