簡體   English   中英

Javascript - 如何檢查一個字符串是否包含多個子字符串

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM