2010-10-25 50 views
3

我想要一個字符串拆分每個單個字符並放入一個數組。字符串是:如何在javascript中以某些字符數字分割字符串?

var string = "hello"; 

您會使用.split()嗎?如果是這樣如何?

+0

你真的是在標題中規定的「特定字符數」,或者在「每一個字」爲主體這個問題? – jball 2010-10-25 18:40:45

+0

我以爲他們會有關係。因爲我認爲在這種情況下它將是每1個字符,但在其他情況下,它可能是每三個字符。我正在尋求一個我認爲是相關的更廣泛的問題。 – chromedude 2010-10-25 18:44:00

+1

「特定數字」的解決方案產生了「每一個」的解決方案,但反過來並不一定是正確的。例如@哈門的答案下面將一個奇怪的起點分裂成3個字符的字符串的字符串。 – jball 2010-10-25 18:51:37

回答

8

是的,你可以使用:

var str = "hello"; 

// returns ["h", "e", "l", "l", "o"] 
var arr = str.split(''); 
+0

好的,謝謝(我會在你允許[15分鐘後]標記你的答案) – chromedude 2010-10-25 18:40:51

1
var s= "hello"; 
s.split(""); 
5

如果你真的想在標題中描述的去做,這應該工作:

function splitStringAtInterval (string, interval) { 
var result = []; 
for (var i=0; i<string.length; i+=interval) 
    result.push(string.substring (i, i+interval)); 
return result; 
} 
+0

謝謝,雖然這不是我真正的問題,我正在尋找這個答案,以備將來參考。 – chromedude 2010-10-25 18:57:28

9

我研究過類似的問題打破所有其他角色。對正則表達式閱讀後,我想出了這個:

data = "0102034455dola"; 
arr = data.match(/../g); 

結果是數組:["01","02","03","44","55","do","la"]

0

這裏有一個簡單的方法while循環做到這一點;

function splitStringAtInterval(str, len){ 
var len = 10; 
var arr = []; 
str = str.split(""); 
while(str.length > len){ 
    arr.push(str.splice(position,len).join("")); 
} 
if(str.length > 0)arr.push(str.join("")); 
    return arr; 
} 
0

如果你想它短和「功能性」:

var input = 'abcdefghijklmn1234567890'; 
var arr = Array.prototype.slice.call(input), output = []; 
while (arr.length) output.push(arr.splice(0, 3).join('')); 

output; // ["abc", "def", "ghi", "jkl", "mn1", "234", "567", "890"]