开发者

Split string with inner and outer delimeters in Javascript

In my Javascript code, I have a string that is something like this:

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

I want to return an array like this:

["1","9","4","3","15"开发者_如何学JAVA,"4","3","67","1", 2","32"]

That is, I want it to separate every character, except the numbers inside the brackets, which I want to preserve as one element.

Is there an elegant way to do this?


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.


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"]
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜