Javascript - 将字符串拆分为未知数量的字符串

时间:2014-07-01 10:51:50

标签: javascript string

我今天的问题是我从查询中检索不同的id,这些id都存储在字符串中,例如:

2345, 6042, 2043, 4053

我现在想要的是用“,”分隔的每个代码分成单个字符串,所以使用前面的例子:

result1 = 2345
result2 = 6042
result3 = 2043
result4 = 4053

我的问题是ID的数量在不同的时间可能是不同的数量,有时可能只有2个ID或者可能有10个。

当数量未知时,我不确定如何使用拆分文本方法。

非常感谢任何有关演示代码的帮助。

谢谢肖恩

5 个答案:

答案 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);
});

http://jsbin.com/bebevija/3/edit

答案 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);