繁体   English   中英

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

[英]Splitting a string into chunks by numeric or alpha character with JavaScript

我有这个:

var str = A123B234C456;

我需要将其拆分为逗号分隔的块以返回如下内容:

A,123,B,234,c,456

我认为正则表达式最适合这个,但我一直被卡住。 本质上,我尝试进行字符串替换,但您不能在第二个参数中使用正则表达式。

我很想保持简单和干净并做这样的事情,但它不起作用:

str = str.replace(/[\d]+/, ","+/[\d]+/);

但在现实世界中,这太简单了。

是否可以?

匹配字符然后加入它们可能更明智:

str = str.match(/(\d+|[^\d]+)/g).join(',');

但是在定义字符串时不要省略引号:

var str = 'A123B234C456';

可以使用正则表达式调用字符串拆分方法。

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

所以给你:

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"

您可以使用正则表达式通过 replace() 来完成。

例如,

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM