在Javascript中每个新字母前拆分字符串

时间:2019-12-12 01:01:15

标签: javascript ecmascript-6

假设我有以下代码:

var string = "A111B222C333D444E555";
var arr = string .match(/.{1,4}/g);

基本上将字符串每4个字符分割成一个数组,并为我提供正确的格式:

0 => A111
1 => B222
3 => C333
4 => D444
5 => D555

问题是该代码仅在每个字母数字组合包含4个字符时才有效。如果字符串为A11B22C33D44E555,则代码将产生格式错误的

0 => A11B
1 => 22C3
3 => 3D44
4 => E555

所需的输出格式实际上是:

0 => A11
1 => B22
3 => C33
4 => D44
5 => E55

是否可以在每个新字母前拆分字符串,而不必担心每个字母后有多少个数字?

2 个答案:

答案 0 :(得分:3)

更改正则表达式以匹配字母字符,后跟一个或多个数字:

var string = "A11B22C33D44E555";
console.log(string.match(/[a-z]\d+/gi));

答案 1 :(得分:2)

当下一个字符不是数字时,可以使用lookahead来拆分字符串:

var string = "A11B22C33D44E555";

var result = string.split(/(?=\D)/);

console.log(result);