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



我有一个字符串,我想按数字拆分。问题是分隔符应该保留在结果数组中。

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

我只在我也期望数字时才收到字母,比如['A', '1', 'B', '2', 'C'].

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

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

请注意,如果字符串以数字开头或结尾,这将导致它之前/之后有一个额外的空元素:

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

如果这是一个问题,您可以过滤掉它们。

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

你可以改用String#match并获取连接的相同项目。

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

你只需要使用 split。这应该有效

"a1b2c3".split('');

最新更新