2016-06-09 226 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; 
}); 
相关问题