所以我有这个:
var str = A123B234C456;
我需要将其拆分为逗号分隔的块以返回类似这样的内容:
A,123,B,234,c,456
我认为正则表达式最适合这个,但我一直卡住,基本上我试图做一个字符串替换,但你不能在第二个参数中使用正则表达式
我希望保持简单和干净并做这样的事情,但它不起作用:
str = str.replace(/[\d]+/, ","+/[\d]+/);
但在现实世界中太简单了。
有什么想法?提前谢谢!
答案 0 :(得分:6)
匹配角色然后加入它们可能更明智:
str = str.match(/(\d+|[^\d]+)/g).join(',');
但是在定义字符串时不要省略引号:
var str = 'A123B234C456';
答案 1 :(得分:0)
您好,您可以使用正则表达式替换它 例如
var str = "A123B234C456";
str = str.replace(/([a-bA-B])/g, '$1,');
现在str值为'A,123,B234,C456';
答案 2 :(得分:0)
可以使用正则表达式调用字符串拆分方法。 如果正则表达式具有捕获组,则分隔符将保留在结果数组中。 因此,您可以开始:
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"