在javascript中拆分字符串以获取数据

时间:2014-01-16 15:07:40

标签: javascript arrays string algorithm

我有一个字符串

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

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

jArray[3] = 465 for example

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

3 个答案:

答案 0 :(得分:3)

只需用空字符串替换所有()和所有空格字符;将其与,分开,然后对所有元素应用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);

答案 1 :(得分:0)

首先,你需要摆脱括号。

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()方法传递它们。

答案 2 :(得分:0)

将新方法添加到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]