你如何在javascript中的某些字符数字处拆分字符串?

时间:2010-10-25 18:34:54

标签: javascript

我想在每个字符处分割一个字符串并放入一个数组中。字符串是:

var string = "hello";

您会使用.split()吗?如果是这样的话?

7 个答案:

答案 0 :(得分:10)

我正在研究类似的问题......打破其他角色。在阅读了正则表达式之后,我想出了这个:

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

结果是数组:["01","02","03","44","55","do","la"]

答案 1 :(得分:8)

是的,您可以使用:

var str = "hello";

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

答案 2 :(得分: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;
}

答案 3 :(得分:1)

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

答案 4 :(得分: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;
}

答案 5 :(得分: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"]

答案 6 :(得分:0)

如果您不想使用RegExp,也可以改为执行此操作:

const splitEvery = (nth) => (str) =>
  Array.from(
    {length: Math.ceil(str.length / nth)},
    (_, index) => str.slice(index * nth, (index + 1) * nth)
  )

// example usage:
const splitEvery2nd = splitEvery(2)
const result = splitEvery2nd('hello')
// result is: ['he', 'll', 'o']

如果要切除任何剩余的零件,请用Math.ceil来代替Math.floor

了解:

此函数创建一个带有切片长度的Array,其中包含文本的预期部分。