![](/img/trans.png)
[英]Javascript - How to check if a string contains multiple substrings in one condition
[英]Javascript - How to check if a string contains multiple substrings
我有多個子字符串,我想在一個字符串中找到這些子字符串,如果找到了所有三個,則執行此操作,如果沒有,則執行其他操作。
我有點堅持如何設置它,以便如果我得到三個“真”,我想執行某些事情,其他我希望它做其他事情。
非常感謝。
我的代碼如下。
//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");
}
}
您可以嘗試使用Array.every方法來檢查所有子字符串。
代碼示例:
var isContainsAllTheParts = substringArray.every(function(substring){
return string0.indexOf(substring) >= 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'); }
我想出了一種方法來做到這一點。
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 }
不知道為什么不接受 Telman Ahababov 的回答。 如果不夠清楚,我會解釋一下。 我還把它縮短了一點,並使用了更簡單的 contains() 方法:
let str = "Here is the string in which we want to find multiple substrings."
let subStrArr = ["Here is", "which we", "multiple"]
let containsAllSubStrs = subStrArr.every(subStr => {
return str.includes(subStr);
});
if (containsAllSubStrs) {
//containsAllSubStrs equals 'true', meaning all substrings were found.
} else {
//containsAllSubStrs equals 'false', meaning NOT all substrings were found.
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.