2016-10-06 3 views
0

を検出しないようにする方法:のJavaScriptのindexOf()は、ここでは異なるチェックを持つ2つの場合の条件ですサブに

CASE 1:

CASE(同じコード/プログラム内)に続いて

if(plan_name.indexOf("T1")>=0 && plan_name.indexOf("FLEX")>=0 && plan_name.indexOf("Non-VAE")>=0) { 
    //do something 
} 

2:

if(plan_name.indexOf("T1")>=0 && plan_name.indexOf("Non-FLEX")>=0 && plan_name.indexOf("Non-VAE")>=0){ 
    //do something 
} 

上記の条件が適用される入力は次のとおりです。

私のコードで

プラン名 = iOS 7.7 - RC - T1 - Non-FLEX, Non-VAE

毎回のindexOf()が、私はコードを検出したいactual specific文字列(つまり、部分文字列を検出していないので、CASE 1の最初のif条件が有効になってきていますケース2は有効である必要があります)。どのようにJSのような特定の文字列の一致を行うには?

+1

* *ループ:) –

+0

悪い、固定...だからあなたが必要とする条件 –

+0

に変更私ではない場合離れてそれを切り裂き、作品を比較する – epascarello

答えて

1

一つの解決策は離れて、それを分割し、文字列が配列

var str = "iOS 7.7 - RC - T1 - Non-FLEX, Non-VAE"; 
var parts = str.split(/[\s,]/g); 
console.log("FLEX", parts.indexOf("FLEX")!==-1); 
console.log("Non-FLEX", parts.indexOf("Non-FLEX")!==-1); 
0

一つのオプションに一致するかどうかは、あなたの実行フローを並べ替えることです。

if(plan_name.indexOf("T1")>=0 && 
     plan_name.indexOf("Non-FLEX")>=0 && 
     plan_name.indexOf("Non-VAE")>=0){ 
    ... 
} else if(plan_name.indexOf("T1")>=0 && 
     plan_name.indexOf("FLEX")>=0 && 
     plan_name.indexOf("Non-VAE")>=0) { 
    ... 
} 

最初の条件がより厳しいと第2のものは、最初のものが真でない場合にのみチェックされる。

'VAE''Non-VAE'も検索する必要がある場合は、トークンがスペースで区切られているように、文字列を「トークン化」する必要があります。それを分割し、必要なトークンごとに結果の配列を調べます。代わりに' FLEX'のための「FLEX」の外観と' Non-Flex'

0

ご確認のこの

plan_name.indexOf("T1")>=-1 
のようにする必要があります:

第三の選択肢は、まだトークンはスペースで区切られ、あなたのマッチャーにスペースを追加していることを想定し

ないこの

plan_name.indexOf("T1")>=0 
関連する問題