【发布时间】:2014-02-05 13:48:21
【问题描述】:
我有一个字符串
"(1,4,76,465,567,583,590)"
我希望能够将其放入 javascript 数组中
jArray[3] = 465 for example
如何将字符串解析为可变长度的子字符串以作为数字传递?
【问题讨论】:
标签: javascript arrays string algorithm
我有一个字符串
"(1,4,76,465,567,583,590)"
我希望能够将其放入 javascript 数组中
jArray[3] = 465 for example
如何将字符串解析为可变长度的子字符串以作为数字传递?
【问题讨论】:
标签: javascript arrays string algorithm
只需将所有(、) 和所有空白字符替换为空字符串即可;用, 拆分它,然后对所有元素应用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);
【讨论】:
首先你需要去掉括号。
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() 方法传递它们。
【讨论】:
将新方法添加到 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]
【讨论】: