2010-10-25 46 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"]