【问题标题】:splitting a string in javascript to get data [duplicate]在javascript中拆分字符串以获取数据[重复]
【发布时间】:2014-02-05 13:48:21
【问题描述】:

我有一个字符串

"(1,4,76,465,567,583,590)"

我希望能够将其放入 javascript 数组中

jArray[3] = 465 for example

如何将字符串解析为可变长度的子字符串以作为数字传递?

【问题讨论】:

    标签: javascript arrays string algorithm


    【解决方案1】:

    只需将所有() 和所有空白字符替换为空字符串即可;用, 拆分它,然后对所有元素应用parseInt 函数以将它们转换为数字,就像这样

    var data = "(1,4,76,465,567,583,590)";
    console.log(data.replace(/[\s()]/g, "").split(",").map(function(currentItem) {
        return parseInt(currentItem);
    }));
    

    输出

    [ 1, 4, 76, 465, 567, 583, 590 ]
    

    如果您不想将它们转换为数字,那么最好使用

    data.replace(/[\s()]/g, "").split(",");
    

    如果你的环境还不支持Array.prototype.map功能,可以使用下面的

    var splittedNumbers = data.replace(/[\s()]/g, "").split(",");
    for (var i = 0; i < splittedNumbers.length; i += 1) {
        splittedNumbers[i] = parseInt(splittedNumbers[i]);
    }
    console.log(splittedNumbers);
    

    【讨论】:

      【解决方案2】:

      首先你需要去掉括号。

      var string = "(1,4,76,465,567,583,590)";
      string = string.replace(/[()]/g,'');
      

      这将返回

      "1,4,76,465,567,583,590"
      

      所以你现在需要做的就是使用 split() 方法

      var array = string.split(',');
      

      这将返回字符串值,因此您还需要通过 parseInt() 方法传递它们。

      【讨论】:

        【解决方案3】:

        将新方法添加到 String 原型中,删除 (),然后用逗号分隔

        String.prototype.splitString = function () {
            return this.replace('(', '').replace(')', '').split(',').map(function (current) { return parseInt(current) });
        };
        
        var string = "(1,2,3,456,567,543,232)";
        
        var array = string.splitString();
        

        输出

        [1, 2, 3, 456, 567, 543, 232]
        

        【讨论】:

        • OP 想要一个整数数组而不是字符串。
        • 注明。更新了答案
        猜你喜欢
        • 2014-06-22
        • 2017-02-05
        • 1970-01-01
        • 1970-01-01
        • 2010-12-02
        • 2023-03-25
        • 2019-07-07
        • 2018-07-27
        • 1970-01-01
        相关资源
        最近更新 更多