Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript中,如何在特定字符数处拆分字符串?_Javascript - Fatal编程技术网

在javascript中,如何在特定字符数处拆分字符串?

在javascript中,如何在特定字符数处拆分字符串?,javascript,Javascript,我希望在每个字符处拆分一个字符串,并将其放入数组中。字符串为: var string = "hello"; 是否使用.split()?如果是这样,怎么做?是的,您可以使用: var str = "hello"; // returns ["h", "e", "l", "l", "o"] var arr = str.split( '' ); 如果您真的想按照标题中的描述进行操作,那么这应该可以: function splitStringAtInterval (string, interval

我希望在每个字符处拆分一个字符串,并将其放入数组中。字符串为:

var string = "hello";
是否使用
.split()
?如果是这样,怎么做?

是的,您可以使用:

var str = "hello";

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

如果您真的想按照标题中的描述进行操作,那么这应该可以:

function splitStringAtInterval (string, interval) {
var result = [];
for (var i=0; i<string.length; i+=interval)
  result.push(string.substring (i, i+interval));
return result;
}
函数splitStringAtInterval(字符串,间隔){
var结果=[];

对于(var i=0;i我正在研究一个类似的问题..在每一个字符上断开。在阅读了regex之后,我得出了以下结论:

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

结果是数组:
[“01”、“02”、“03”、“44”、“55”、“do”、“la”]

下面是一种使用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;
}

如果您希望它简短且“实用”:

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"]

如果不想使用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.floor
调用替换
Math.ceil

理解:


此函数用于创建一个数组,数组长度为片数,包含文本的预期部分。

您是指标题中指定的“特定字符数”还是“每个字符”就像问题的主体一样?我认为它们是相关的。因为我认为在这种情况下,每1个字符一个,但在其他情况下,可能每3个字符一个。我想问一个我认为相关的更广泛的问题。对“特定数字”的解产生了对“每一个”的解,但反过来不一定正确。例如,下面@Harmen的答案将是将字符串拆分为3个字符块的奇怪起点。好的,谢谢(我会在允许的情况下[15分钟后]将您标记为答案)谢谢,尽管这不是我的实际问题,但我正在寻找此答案以供将来参考。
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']