IF函数中的Javascript通配符

IF函数中的Javascript通配符,javascript,Javascript,我有一个具有以下选项的字段 United Kingdom EEA France EEA India Non EEA China Non EEA 如何执行if语句来检查字段是否包含EEA或非EEA。我在我的示例代码中使用了==,我知道它甚至不接近,我只是想让它更清晰 据我所知,我不能使用子字符串,因为长度始终会因国家而异,基本通配符仍然会拉回欧洲经济区和非欧洲经济区的结果 function DisplayCorrectSections() { var SectionSelection =

我有一个具有以下选项的字段

United Kingdom EEA
France EEA
India Non EEA
China Non EEA
如何执行
if
语句来检查字段是否包含
EEA
非EEA
。我在我的示例代码中使用了
==
,我知道它甚至不接近,我只是想让它更清晰

据我所知,我不能使用
子字符串
,因为
长度
始终会因国家而异,基本通配符仍然会拉回
欧洲经济区
非欧洲经济区
的结果

function DisplayCorrectSections() {
    var SectionSelection = GetFieldValue("Nationality");

        if (SectionSelection == "EEA" ) {
            EnableRtwDocs();
            DisableVisaInformation();
            DisableValidVisaPanel();

        }

        if (SectionSelection == "Non EEA") {
            DisableRtwDocs();
            EnableVisaInformation();
            EnableValidVisaPanel();
        }
}
您可以使用,但必须先检查
非EEA
,否则它也会在
非EEA
字符串中找到
EEA

if (SectionSelection.indexOf("Non EEA") > -1) {
  //contains "Non EEA"
} else if (SectionSelection.indexOf("EEA") > -1) {
  //contains "EEA"
} else {
  //contains neither
}
您可以使用,但必须先检查
非EEA
,否则它也会在
非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
之前有
,则
匹配[1]
将包含

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

从@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
之前有
,则
匹配[1]
将包含


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

欢迎使用stackoverflow。请注意你写问题的文本框下的问题预览。它将显示您的问题是否格式正确(即其他人阅读/理解的容易程度)。欢迎使用stackoverflow。请注意你写问题的文本框下的问题预览。它会告诉你你的问题的格式是否正确(即其他人阅读/理解的容易程度)+1让我去检查世界上是否有国家包含“EEA”,这会破坏我的代码:)()呵呵。。。安全总比抱歉好@James:)尽管有一位比我聪明得多的人曾经说过:“如果你能证明什么是白痴,他们只会变成更好的白痴。”谢谢你们,先生们,非常感谢+让我去检查世界上是否有国家含有“EEA”,这会破坏我的密码:)()呵呵。。。安全总比抱歉好@James:)尽管有一位比我聪明得多的人曾经说过:“如果你能证明什么是白痴,他们只会变成更好的白痴。”谢谢你们,先生们,非常感谢!