2011-09-21 97 views
2

我正在嘗試做同樣的事情,這個人正在做,只有他在Ruby中這樣做,我試圖通過Javascript來做到這一點:Javascript正則表達式將字符串拆分爲分組/連續字符數組

Split a string into an array based on runs of contiguous characters

它基本上只是分割字符的單個串入的連續的字符數組 - 因此,例如:

定的輸入字符串的

「aaaabbbbczzxxxhhnnppp」

將成爲

[ 'AAAA', 'BBBB', 'C', 'ZZ', 'XXX', 'HH', 'ン', 'PPP']

的陣列最近我已經得到的是:

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

裏面居然不還挺/八九不離十工作......但不是真的...我明明分裂太多,否則我就不會消除與虛假條目+ 3索引操作。

我怎樣才能得到一個乾淨的數組,只有我想要它?

Thanks-

回答

7

你的正則表達式是很好,你只是使用了錯誤的功能。使用String.match,而不是String.split:

var matches = 'aaaabbbbczzxxxhhnnppp'.match(/((.)\2*)/g); 
+0

啊,我知道我必須做一些愚蠢的事情。謝謝! – kman

相關問題