2016-06-09 20 views
1

Ich habe mehrere Teilzeichenfolgen, die ich in einer einzelnen Zeichenfolge finden möchte, und wenn alle drei gefunden werden, tun Sie dies, wenn nicht, tun Sie etwas anderes.Javascript - Wie überprüft man, ob eine Zeichenfolge mehrere Teilzeichenfolgen enthält

Ich bin irgendwie fest, wie man es so einstellen, dass wenn ich drei "True" bekomme, möchte ich etwas ausführen, andere möchte ich etwas anderes tun.

Vielen Dank.

Mein Code ist unten.

//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"); 
    } 
} 

Antwort

0

verwenden Sie einfach eine Variable, die die Anzahl von "true"

//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

Danke, wir zugleich dem Laufenden! Ich habe deine als die Antwort markiert. Danke :) – lamdan

+1

Verwenden Sie substringArray.length anstelle von fest codierten 3, dann wird es für eine beliebige Anzahl von Elementen in substringArray funktionieren –

0

ich einen Weg, es zu tun herausgefunden zu zählen.

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

können Sie Array.every Methode versuchen für alle Teilstrings zu überprüfen.

Ein Beispiel für Code:

var isContainsAllTheParts = substringArray.every(function(substring){ 
    return string0.indexOf(substring) >= 0; 
}); 
Verwandte Themen