IF 函数中的 JavaScript 通配符

Javascript wildcard in IF Function

本文关键字:JavaScript 通配符 函数 IF      更新时间:2023-09-26

我有一个字段,其中包含以下选项

United Kingdom EEA
France EEA
India Non EEA
China Non EEA

如何执行if语句来检查字段是否包含EEANon EEA。我在示例代码中使用了==,我知道它甚至不接近,我只是想让它清楚。

据我所知,我不能使用substring,因为length总是会因国家/地区而异,并且基本的通配符仍然会拉回EEANon EEA的结果。

function DisplayCorrectSections() {
    var SectionSelection = GetFieldValue("Nationality");
        if (SectionSelection == "EEA" ) {
            EnableRtwDocs();
            DisableVisaInformation();
            DisableValidVisaPanel();
        }
        if (SectionSelection == "Non EEA") {
            DisableRtwDocs();
            EnableVisaInformation();
            EnableValidVisaPanel();
        }
}

您可以使用 indexOf ,但必须先检查Non EEA,否则它也会在Non EEA字符串中找到EEA

if (SectionSelection.indexOf("Non EEA") > -1) {
  //contains "Non EEA"
} else if (SectionSelection.indexOf("EEA") > -1) {
  //contains "EEA"
} else {
  //contains neither
}

> 从@James那里得到很好的答案,你也可以使用正则表达式来做到这一点,这也将测试以确保文本在值的末尾

var matches = SectionSelection.match(/(non )?eea$/i);
if (matches != null) {
  if (matches[1] != "") {
    //contains "Non EEA"
  } else {
    //contains "EEA"
  }
} else {
  //contains neither
}

匹配的细分是这样的...

  • (non )?检测字母non
  • 是否存在
  • eea直接匹配字母
  • $与行尾匹配

如果eea之前有non,那么match[1]就会有non

末尾的i表示它不区分大小写,因此它将匹配eeaEEAEEa等。