使用JavaScript通过数字或字母字符将字符串拆分为块

使用JavaScript通过数字或字母字符将字符串拆分为块,javascript,string,split,chunks,Javascript,String,Split,Chunks,我有这个: var str = A123B234C456; 我需要将其拆分为逗号分隔的块,以返回如下内容: A,123,B,234,c,456 我以为a是最好的,但我一直被卡住。基本上,我尝试进行字符串替换,但不能在第二个参数中使用正则表达式 我希望保持它的简单和干净,并做类似的事情,但它不起作用: str = str.replace(/[\d]+/, ","+/[\d]+/); 但在现实世界中,这太简单了 有可能吗?更明智的做法是匹配字符,然后加入字符: str =

我有这个:

var str = A123B234C456;
我需要将其拆分为逗号分隔的块,以返回如下内容:

A,123,B,234,c,456
我以为a是最好的,但我一直被卡住。基本上,我尝试进行字符串替换,但不能在第二个参数中使用正则表达式

我希望保持它的简单和干净,并做类似的事情,但它不起作用:

str = str.replace(/[\d]+/, ","+/[\d]+/);
但在现实世界中,这太简单了


有可能吗?

更明智的做法是匹配字符,然后加入字符:

str = str.match(/(\d+|[^\d]+)/g).join(',');
但在定义字符串时不要忽略引号:

var str = 'A123B234C456';
可以通过使用正则表达式替换()来实现

比如说,

var str = "A123B234C456";
str = str.replace(/([a-bA-B])/g, '$1,');

现在str的值将是'A,123,B234,C456'。

可以用正则表达式调用string split方法

如果正则表达式具有捕获组,则分隔符将保留在结果数组中

那么,给你:

let c = "A123B234C456";
let stringsAndNumbers = c.split(/(\d+)/); // ["A", "123", "B", "234", "C", "456", ""]
由于示例以数字结尾,最后一个元素将为空。 删除空数组元素:

let stringsAndNumbers = c.split(/(\d+)/).filter(el => el != ""); // ["A", "123", "B", "234", "C", "456"]
然后加入:

let stringsAndNumbers = c.split(/(\d+)/).filter(el => el != "").join(","); // "A,123,B,234,C,456"

哇!有时你会陷入过于复杂的境地。那很有效!