在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']