小编典典

如何将字符串拆分为 n 个字符的段?

all

正如标题所说,我有一个字符串,我想分成 n 个 字符的段。

例如:

var str = 'abcdefghijkl';

经过一番魔术后n=3,它会变成

var arr = ['abc','def','ghi','jkl'];

有没有办法做到这一点?


阅读 130

收藏
2022-05-09

共1个答案

小编典典

var str = 'abcdefghijkl';

console.log(str.match(/.{1,3}/g));

注意: 使用{1,3}而不是仅仅{3}包含不是 3 倍数的字符串长度的余数,例如:

console.log("abcd".match(/.{1,3}/g)); // ["abc", "d"]

还有一些微妙之处:

  1. 如果您的字符串可能包含换行符( 您想将其计为一个字符而不是拆分字符串 ),则.不会捕获这些。改为使用/[\s\S]{1,3}/。(感谢@Mike)。
  2. 如果你的字符串是空的,那么当你期望一个空数组时match()会返回。null通过附加来防止这种情况|| []

所以你最终可能会得到:

var str = 'abcdef \t\r\nghijkl';

var parts = str.match(/[\s\S]{1,3}/g) || [];

console.log(parts);



console.log(''.match(/[\s\S]{1,3}/g) || []);
2022-05-09