我有一个字符串,我想按数字拆分。问题是分隔符应该保留在结果数组中。
'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('');