2015-12-15 49 views
0

基本上我的字符串看起來是這樣的。分裂和獨立的基於特定值 - jQuery的

568|896|2015-12-14 13:43:05||1|6666698|text1|999969|624|0|1|0|1^696|982|2015-11-14 13:43:05||2|6666695|text2|899969|634|0|0|0|0^147|111|2015-10-14 13:43:05||3|6666694|text3|799969|644|0|0|0|0^025|558|2014-09-14 13:43:05||4|6666693|text4|699969|654|0|1|0|1^925|777|2014-08-14 13:43:05||5|6666692|text5|599969|664|0|1|0|1^ 

那麼我通過^字符

var allvalues = $('#allvalues').val(); 
var spval = allvalues.split('^'); 

console.log(spval[0])+"<br>"; 
console.log(spval[1])+"<br>"; 
console.log(spval[2])+"<br>"; 
console.log(spval[3])+"<br>"; 
console.log(spval[4])+"<br>"; 

劈裂此字符串現在,這會給

568|896|2015-12-14 13:43:05||1|6666698|text1|999969|624|0|1|0|1 
696|982|2015-11-14 13:43:05||2|6666695|text2|899969|634|0|0|0|0 
147|111|2015-10-14 13:43:05||3|6666694|text3|799969|644|0|0|0|0 
025|558|2014-09-14 13:43:05||4|6666693|text4|699969|654|0|1|0|1 
925|777|2014-08-14 13:43:05||5|6666692|text5|599969|664|0|1|0|1 

現在在這裏,我要檢查的拆分後的每個陣列。並且希望根據最後4個數字分開排列,其中所有4個數字應該是 [0|0|0|0],在由|管道字符分隔的數組內。

的獨立後,我應該得到

696|982|2015-11-14 13:43:05||2|6666695|text2|899969|634|0|0|0|0 
147|111|2015-10-14 13:43:05||3|6666694|text3|799969|644|0|0|0|0 

568|896|2015-12-14 13:43:05||1|6666698|text1|999969|624|0|1|0|1 
025|558|2014-09-14 13:43:05||4|6666693|text4|699969|654|0|1|0|1 
925|777|2014-08-14 13:43:05||5|6666692|text5|599969|664|0|1|0|1 

如何實現這一目標?

+0

你想帶有o的新陣列只有以'0 | 0 | 0 | 0'結尾的項目,還是您想按項目的結尾對項目進行排序或將項目分組? –

回答

3

可以遍歷並把值在兩個不同的陣列

var allvalues = $('#allvalues').val(); 
var spval  = allvalues.split('^'); 
var arr2  = []; 
var arr1  = spval.filter(function(item) { 
    if (item.trim().length === 0) return false; 
    if (item.split('|').join('').slice(-4) === "0000") { 
     arr2.push(item); 
     return false 
    } 
    return true; 
}); 

FIDDLE

+0

謝謝。但我無法按照這一行if(item.trim()。length === 0)返回false;' – Matarishvan

+1

你在字符串的末尾有一個'^',這意味着你將在一個empy索引時獲得一個empy索引分裂。該行只刪除數組中具有空字符串作爲值的任何索引。 – adeneo

+0

非常感謝.... – Matarishvan

1

試試這個,

 var test = "568|896|2015-12-14 13:43:05||1|6666698|text1|999969|624|0|1|0|1^696|982|2015-11-14 13:43:05||2|6666695|text2|899969|634|0|0|0|0^147|111|2015-10-14 13:43:05||3|6666694|text3|799969|644|0|0|0|0^025|558|2014-09-14 13:43:05||4|6666693|text4|699969|654|0|1|0|1^925|777|2014-08-14 13:43:05||5|6666692|text5|599969|664|0|1|0|1^"; 
    var spval = test.split('^'); 
    var arr1 = new Array(); 
    var arr2 = new Array(); 
    $.each(spval,function(key,value){ 
     if(value.length >= 4) 
     { 
      var lastFour = value.substring(value.length-8,value.length); 
      if(lastFour == "|0|0|0|0") 
      { 
       arr1.push(value); 
      } 
      else 
      { 
       arr2.push(value); 
      } 
     } 
     else 
     { 
      arr2.push(value); 
     } 
    }); 

    alert(JSON.stringify(arr1)); 
    alert(JSON.stringify(arr2)); 
1

試試這個

var str = '568|896|2015-12-14 13:43:05||1|6666698|text1|999969|624|0|1|0|1^696|982|2015-11-14 13:43:05||2|6666695|text2|899969|634|0|0|0|0^147|111|2015-10-14 13:43:05||3|6666694|text3|799969|644|0|0|0|0^025|558|2014-09-14 13:43:05||4|6666693|text4|699969|654|0|1|0|1^925|777|2014-08-14 13:43:05||5|6666692|text5|599969|664|0|1|0|1^' 

var _arr = str.split("^") 

var _outArr1 = []; 
var _outArr2 = []; 
for(var i=0;i<_arr.length;i++) { 
    if(_arr[i].match(/0\|0\|0\|0$/) != null) { 
     _outArr1.push(_arr[i]) 
    } else { 
     _outArr2.push(_arr[i]) 
    } 
}