2013-04-09 60 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