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

前端 未结 3 1322
天涯浪人
天涯浪人 2020-12-04 02:57

I have this:

var str = A123B234C456;

I need to split it into comma-separated chunks to return something like this:

A,123,B,234         


        
相关标签:
3条回答
  • 2020-12-04 03:28

    The string split method can be called with a regular expression.

    If the regular expression has a capture group, the separator will be kept in the resulting array.

    So here you go:

    let c = "A123B234C456";
    let stringsAndNumbers = c.split(/(\d+)/); // ["A", "123", "B", "234", "C", "456", ""]
    

    Since your example ends with numbers, the last element will be empty. Remove empty array elements:

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

    Then join:

    let stringsAndNumbers = c.split(/(\d+)/).filter(el => el != "").join(","); // "A,123,B,234,C,456"
    
    0 讨论(0)
  • 2020-12-04 03:34

    You can do it by replace() using a regular expression.

    For example,

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

    Now the value of str will be 'A,123,B234,C456'.

    0 讨论(0)
  • 2020-12-04 03:36

    It may be more sensible to match the characters and then join them:

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

    But don't omit the quotes when you define the string:

    var str = 'A123B234C456';
    
    0 讨论(0)
提交回复
热议问题