Javascript 按空格分组将数字字符串分隔为4(不太容易实现)

Javascript 按空格分组将数字字符串分隔为4(不太容易实现),javascript,string-split,Javascript,String Split,我有一个数字串,例如123456789 我想把他们四个人分成一组,这样就成了123456789 我试过了 string.match(/.{1, 4}/g).join(' '); 但它只给出了12345678 9 我也试着先把它倒过来 string.split('').reverse().join('').match(/.{1,4}/g).join(' ') 但它给出的是154329876 有什么提示吗?可能有更好的方法,但这似乎有效: string.split('').reverse().j

我有一个数字串,例如123456789

我想把他们四个人分成一组,这样就成了
123456789

我试过了

string.match(/.{1, 4}/g).join(' ');
但它只给出了
12345678 9

我也试着先把它倒过来

string.split('').reverse().join('').match(/.{1,4}/g).join(' ')
但它给出的是
154329876


有什么提示吗?

可能有更好的方法,但这似乎有效:

string.split('').reverse().join('').match(/.{1,4}/g).join(' ').split('').reverse().join('')

使用for循环的替代方法:

var s = "123456789";
var n = 4;
for (var i = s.length - n; i > 0; i -= n)
    s = s.substr(0, i) + " " + s.substring(i);
// Now s == "1 2345 6789"

在Beigi的评论之后,我确实有另一个使用while循环的答案:

var text = '123456789';
var result = '';
var split = text.split('');
var start = 0;
var end = text.length % 4;
while (end <= isLoading.length) {
  result += split.slice(start, end).join('') + ' ';
  start = end;
  end += 4;
}
var text='123456789';
var结果=“”;
var split=text.split(“”);
var start=0;
var end=text.length%4;

虽然(结束可能重复的
string.match(/.{1,4}(?=(?:.{4})*$)/g)
应该可以,但相当难看。请尝试使用
.slice
进行循环。@Bergi非常感谢,它工作得很好!