2016-06-09 227 views
1

我有多個子字符串,我想在一個字符串中找到,如果找到了所有三個,那麼做到這一點,如果沒有,做別的。Javascript - 如何檢查一個字符串是否包含多個子字符串

我有點被困在如何設置它,所以如果我得到三個「真」,我想執行一些事情,其他我希望它做別的事情。

非常感謝。

我的代碼如下。

//Main String 
var string0 = ' ": {"MATHEMATICS": {"status": "start", "can_start": false}, "READING": {"status": "start", "can_start": false}, "WRITING": {"status": "start", "can_start": false" '; 

//Substrings 
var substringArray = ['"MATHEMATICS": {"status": "start"', '"READING": {"status": "start"', '"WRITING": {"status": "start"']; 

//Check if Substrings are found in MainString 
for (l = 0; l < substringArray.length; l++) { 
    if (string0.indexOf(substringArray[l]) > -1) { 
    logger.info("True"); 
    } else { 
    logger.info("False"); 
    } 
} 

回答

0

只需使用一個變量來計算的 「真」 的數量

//Main String 
 
    var string0 = ' ": {"MATHEMATICS": {"status": "start", "can_start": false}, "READING": {"status": "start", "can_start": false}, "WRITING": {"status": "start", "can_start": false" '; 
 

 
    //Substrings 
 
    var substringArray = ['"MATHEMATICS": {"status": "start"', '"READING": {"status": "start"', '"WRITING": {"status": "start"']; 
 

 
    var matchCount = 0; 
 

 
    //Check if Substrings are found in MainString 
 
    for (l = 0; l < substringArray.length; l++) { 
 
    if (string0.indexOf(substringArray[l]) > -1) { 
 
    logger.info("True"); 
 
    matchCount++; 
 
    } else { 
 
     logger.info("False"); 
 
    } 
 
    } 
 

 
    if(matchCount == 3){ 
 
     //do something 
 
     logger.info('I did'); 
 
    } else { 
 
     // do some other thing 
 
     logger.info('I did not'); 
 
    }

+0

謝謝,我們張貼在同一時間!我已標記你的答案。謝謝:) – lamdan

+1

使用substringArray.length而不是硬編碼3,那麼它將適用於substringArray中的任意數目的元素 –

0

我想出了一個辦法做到這一點。

var magicNumber = 0; 
 

 
//Check if Substrings are found in string0 
 
for (l = 0; l < substringArray.length; l++) { 
 
    //logger.info(substringArray[l]); 
 
    if (string0.indexOf(substringArray[l]) > -1) { 
 
    logger.info("True"); 
 
    magicNumber++; 
 
    } else { 
 
    logger.info("False"); 
 
    } 
 
} 
 

 
while (magicNumber < 3) { 
 
    //execute this 
 
}

3

您可以嘗試使用Array.every方法來檢查所有的子字符串。

的代碼示例:

var isContainsAllTheParts = substringArray.every(function(substring){ 
    return string0.indexOf(substring) >= 0; 
}); 
相關問題