假设我有以下代码:
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
是否可以在每个新字母前拆分字符串,而不必担心每个字母后有多少个数字?
答案 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);