按数字拆分并将该数字保留在结果中

时间:2018-09-17 16:10:02

标签: javascript split

我有一个要按数字分割的字符串。问题在于分隔符应保留在结果数组中。

'A1B2C'.split(/\d/);
// ['A', 'B', 'C']

我只是在期望数字的同时也收到字母,例如['A', '1', 'B', '2', 'C']

3 个答案:

答案 0 :(得分:4)

将捕获组放在正则表达式周围会告诉split()将分隔符保留在结果中。

console.log('A1B2C'.split(/(\d+)/));

请注意,如果字符串以数字开头或结尾,则会在其之前/之后产生一个额外的空元素:

console.log('5A1B2C6'.split(/(\d+)/));

如果有问题,可以将其过滤掉。

console.log('5A1B2C6'.split(/(\d+)/).filter(s => s != ""));

答案 1 :(得分:1)

您可以改用String#match并接受相连的相同物品。

console.log('A1BB222C'.match(/\D+|\d+/g));

答案 2 :(得分:0)

您只需要使用split。这应该起作用

"a1b2c3".split('');