我有以下字符串:
foofaafoofaafoofaafoofaafoofaa
如果我按每3个字符分割,会得到一个有10行的数组,如果我实例化它,它看起来会像这样:
var fooarray = new Array ('foo', 'faa', 'foo', 'faa', 'foo', 'faa', 'foo', 'faa', 'foo', 'faa');
我需要一个能够帮助我按每n个字符拆分字符串的函数,可以是内置函数或自定义函数。
我有以下字符串:
foofaafoofaafoofaafoofaafoofaa
如果我按每3个字符分割,会得到一个有10行的数组,如果我实例化它,它看起来会像这样:
var fooarray = new Array ('foo', 'faa', 'foo', 'faa', 'foo', 'faa', 'foo', 'faa', 'foo', 'faa');
我需要一个能够帮助我按每n个字符拆分字符串的函数,可以是内置函数或自定义函数。
尝试以下代码:
var foo = "foofaafoofaafoofaafoofaafoofaa";
console.log( foo.match(/.{1,3}/g) );
对于第n个位置:
foo.match(new RegExp('.{1,' + n + '}', 'g'));
var s = "foofaafoofaafoofaafoofaafoofaa";
var a = [];
var i = 3;
do{ a.push(s.substring(0, i)) }
while( (s = s.substring(i, s.length)) != "" );
console.log( a )
输出:
foo,faa,foo,faa,foo,faa,foo,faa,foo,faa
在我写这篇文章的时候,@xdazz提出了一个非常简单的正则表达式解决方案。
但是,由于您已经要求(在对该答案的评论中)提供一个非正则表达式的解决方案,所以我还是会提交这个……
function splitNChars(txt, num) {
var result = [];
for (var i = 0; i < txt.length; i += num) {
result.push(txt.substr(i, num));
}
return result;
}
console.log(splitNChars("foofaafoofaafoofaafoofaafoofaa",3));
var input = "foofaafoofaafoofaafoofaafoofaa";
var result = [];
while (input.length) {
result.push(input.substr(0, 3));
input = input.substr(3);
}
function splitStringAtInterval (string, interval) {
var result = [];
for (var i=0; i<string.length; i+=interval)
result.push(string.substring (i, i+interval));
return result;
}
["abc","def","ghi","j"]
。function splitEvery(str, n)
{
var arr = new Array;
for (var i = 0; i < str.length; i += n)
{
arr.push(str.substr(i, n));
}
return arr;
}
var result = splitEvery('abcdefghij', 3);
document.write(JSON.stringify(result));