如何根据空间和限制拆分字符串?

时间:2018-01-08 09:53:18

标签: javascript arrays

例如,我有一个字符串:

var s = "Tyrannosaurus Rex";

我的限制是4.所以我想把这个字符串拆分为4个字母的短字符串到数组中。可以使用以下方法完成:

var arr = s.match(/.{1,4}/g);

但令人不安的是,它应该考虑空间或\ n作为分裂标准。所以最终输出应该是:

["Tyra", "nnos", "auru", "s", "Rex"]

而不是这个:

["Tyra", "nnos", "auru", "s Re", "x"]

任何干净的解决方案都会有所帮助!

3 个答案:

答案 0 :(得分:10)

只需将正则表达式修改为与空格或新行不匹配:



var s = "Tyrannosaurus Rex";
console.log(s.match(/[^ \n]{1,4}/g));




答案 1 :(得分:0)

使用此/\S{1,4}/g。它将考虑除空格,制表符和换行符之外的每个字符。



var s = "Tyrannosaurus Rex";
console.log(s.match(/\S{1,4}/g));




答案 2 :(得分:0)

首先将其拆分为单词,然后应用正则表达式:



var s = "Tyrannosaurus Rex";
var words = s.split(' ');

var arr = [].concat(...words.map(w => w.match(/.{1,4}/g)));

console.log(arr);




编辑:离开这里,但@le_m答案可以证明更好