我今天的问题是我从查询中检索不同的id,这些id都存储在字符串中,例如:
2345, 6042, 2043, 4053
我现在想要的是用“,”分隔的每个代码分成单个字符串,所以使用前面的例子:
result1 = 2345
result2 = 6042
result3 = 2043
result4 = 4053
我的问题是ID的数量在不同的时间可能是不同的数量,有时可能只有2个ID或者可能有10个。
当数量未知时,我不确定如何使用拆分文本方法。
非常感谢任何有关演示代码的帮助。
谢谢肖恩
答案 0 :(得分:0)
您不需要知道要执行拆分的元素数量。您只需获取所有新字符串的数组,数组的长度取决于源字符串。
使用您的示例:
var text = "2345, 6042, 2043, 4053";
var items = text.split(', ');
// items will now be an array of 4 strings: ["2345", "6042", "2043", "4053"]
假设总是有逗号和空格。如果您不确定所有元素是否会被两者分开,则应仅拆分逗号,然后修剪结果,例如:
items = items.map(function(el){ return el.trim(); });
这也是将它们解析成整数的一个好点(假设它们总是如此,你需要在某些时候对它们进行数学运算)。
答案 1 :(得分:0)
var str = "2345, 6042, 2043, 4053";
var arr = str.split(",");
var results = [];
for (var i = 0; i < arr.length; i++) {
results.push("result" + i + " = " + arr[i].trim());
}
答案 2 :(得分:0)
split
也可以由RegExp制作。
var ids = '124523, 23444, 23, 123, 5345, 534, 867';
var idArray = ids.split(/,\s?/);
idArray.forEach(function(id) {
console.log(id);
});
答案 3 :(得分:0)
尝试这个逻辑兄弟你将存储数组中的每个值然后你也可以使用循环
来获得它var xx = "2345, 6042, 2043, 4053";
var x = xx.split(",");
var result = new Array();
for( var ctr = 0; ctr < x.length; ctr++ ){
result[ctr] = x[ctr];
}
for( var ctr = 0; ctr < result.length; ctr++ ){
alert( result[ctr] );
}
答案 4 :(得分:0)
对于未确定数量的变量,我建议将数据存储在数组中。
var str = "2345, 6042, 2043, 4053";
var arr = str.split(/,\ ?/);
//checking
console.log(arr[0], arr[1]);
变量arr存储带数字的字符串数组。 如果将数据存储在变量中很重要,请参阅下面的代码
var str = "2345, 6042, 2043, 4053";
var arr = str.split(/,\ ?/);
for(var i = 0; i < arr.length; i++){
window['param'+i] = arr[i];
}
//checking
console.log(param0, param1);
在window对象中创建变量。 或者您可以创建自己的对象
var str = "2345, 6042, 2043, 4053";
var arr = str.split(/,\ ?/);
var myObj = {};
for(var i = 0; i < arr.length; i++){
myObj['param'+i] = arr[i];
}
//checking
console.log(myObj.param0, myObj.param1);