2015-05-25 41 views
2

我有在單個字段中的數據,其是如下:在javascript使用子串以收集數組中的值

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

在此先感謝。

+0

你嘗試過什麼? – ketan

+0

「40-818-938 |聯軸器,25MM,PVC BLACK | PCS,地鐵,束| 3」 .split( 「|」)[2] .split( 「」) – kag

回答

3

既然你已經分割原始字符串到一個數組,你只需要也被分成數組的第二個元素:

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

然後,在循環中,你需要參考它像這樣:

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

Demo

+0

感謝,它工作,因爲我想它。 – user3625561

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); 
}); 
0

您需要使用Java腳本的分裂功能。防爆。

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

如果你想刪除空格以及,Y OU可以將它們添加到模式各執:

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