2015-12-15 17 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]) 
    } 
}