在javascript中使用Substring来收集数组中的值

时间:2015-05-25 05:15:39

标签: javascript html

我在单个字段中有数据,如下所示:

40-818-938 | COUPLING, 25MM, PVC BLACK | PCS, MTR, BUNDLE | 3

第一个块是项目代码,第二个是项目描述,第三个是单位,它们是动态的,第四个是单位数量。这些块由|

分隔

我想循环遍历第三个块(单位)并将它们放入不带逗号和空格的单独变量中,并使用它们填充选择列表。

请帮助我实现这一目标。下面是根据单位数量将第三个块添加到选择列表中的代码(第四个块),我需要将它们分开。

for (var i = 0; i < arrData[3]; i++) {
 var x = document.createElement("OPTION");
    x.setAttribute("value", arrData[2]);
    var t = document.createTextNode(arrData[2]);
    x.appendChild(t);
input.appendChild(x);
}

提前致谢。

5 个答案:

答案 0 :(得分:3)

由于您已经将原始字符串拆分为数组,因此您只需要拆分该数组的第二个元素:

arrData[2] = arrData[2].split(',');

然后,在循环内部,你需要像这样引用它:

x.setAttribute("value", arrData[2][i]);
var t = document.createTextNode(arrData[2][i]);

Demo

答案 1 :(得分:2)

Var items = obj.split("|"); 
Var units = items[2].split(",");

答案 2 :(得分:1)

如果您还要删除空格,可以将它们添加到要拆分的模式:

var data = '40-818-938 | COUPLING, 25MM, PVC BLACK | PCS, MTR, BUNDLE | 3';

var units = data.split(/\s*\|\s*/g)[2]; // "PCS, MTR, BUNDLE"

console.log(units.split(/\s*,\s*/)[1]); // "MTR" 

制作选项元素的最简单方法是使用Option constructor

var unit = units.split(/\s*,\s*/)[1];
var x = new Option(unit, unit);
input.appendChild(x);

答案 3 :(得分:0)

你可以这样做

var string1 = yourstring.split('|');
var array = string1[2] .split(',');  

建立一个选择:

array.forEach(function(entry) {
  var x = document.createElement("OPTION");
  x.setAttribute("value", entry);
  var t = document.createTextNode(entry);
  x.appendChild(t);
  input.appendChild(x);
});

答案 4 :(得分:0)

您需要使用java脚本的拆分功能。实施例

var newstring=string.split('|');
var laststring=newstring[2].split(",");// new string
var yourneed=laststring[1];