2013-10-25 44 views
0

我已經研究過這個問題,但找不到一個好的答案。所以這裏是我的代碼:將字符串切割成'可變'長塊

var str = '000100111000010110' 
var length = 2; 
var temp = new Array(str.match(/.{length}/g)); 

但這不起作用。

保持變量的長度非常重要,如果我不需要,我不會使用正則表達式。

+1

您的預期輸出是什麼? – Andy

+0

一個數組,其中包含00,01,10或11的每個項目 –

+0

其實,我一直在尋找[this](http://stackoverflow.com/questions/494035/how-do-you-passa-a-可變的正則表達式的JavaScript),但我對問題的一點理解導致沒有問正確的問題。 –

回答

2

只需使用普通的for循環和substr即可。不需要涉及正則表達式:

var str = '000100111000010110'; 
var length = 2; 

var split = []; 
for (var i = 0; i < str.length; i += length) { 
    split.push(str.substr(i, length)); 
} 

console.log(split); 
// ["00", "01", "00", "11", "10", "00", "01", "01", "10"] 
+0

yiss!這工作。謝謝! –