2013-04-09 77 views
0

我有一个字符串让我们说'C1和C2或C3(〜!@#$%)和C4或C5'......现在我已经实际拆分了它并将其保存在一个数组中(inArray),即在javascript中的字符串格式

function removeCondition(condition,input){ 
    //Condition is the String ie(C1 And C2) and input is the suffix no ie (3 for C3) 
    condition = condition.replace(new RegExp("\n","g")," "); 
    var inArray = condition.split(' '); 
    var conditionRemoved = false; 

    inArray.forEach(function(v,i,a){ 
     if(v.indexOf("C"+input) > -1){ 
      if(i+2 < a.length){ 
       //some function i want 

       //inArray.splice(i,2); 
      } 
      else{ 
       inArray.splice(i-1,2); 
      } 
      inArray.join(' '); 
     } 
    } 
}//editor: added this bracket to balance the closing brackets 

以上if()条件满足时,我想所需的条件,即,在这种情况下C3 ..现在我想删除与下一个操作员沿着C3(其可以是或/和)以及所有在之间的垃圾..所以对于以上前我的输出必须是C1 AND C2 OR C4 OR C5

+0

你为什么要消除'C3'? – Ejaz 2013-04-09 10:36:26

+0

多数民众赞成在wat的要求是..它可以是C1,C2,C3等.. m lukin为通用解决方案 – Kumar 2013-04-09 11:00:30

+1

ahhh ..为什么thers一个投票下来的问题.. atleast提供的原因..所以,在未来我可以保重 – Kumar 2013-04-09 11:01:52

回答

1

我仍然不知道你的问题,但因为你的问题跟进,该代码可能会给你一个起点

var conditions = 'C1 AND C2 OR C3 ([email protected]#$%) AND C4 OR C5'; 
var filtered = conditions.replace(/c3((?!and|or).)*(and|or)/gi, ''); 

//output: C1 AND C2 OR C4 OR C5 

我希望你可以使用给定的(硬编码)为您的功能提供工作解决方案并获得所需的输出

+0

谢谢你的努力......垃圾可以是任何类似whitespaces甚至括号( )()()()... – Kumar 2013-04-09 12:13:44

+1

你有没有试过解决方案?它应该工作,只要_garbage_不包含'和'或'或'关键字。 – Ejaz 2013-04-09 12:14:35

+0

也在这里我不能硬代码C3 ..因为它会在每个输入变化...任何溶胶 – Kumar 2013-04-09 12:15:10