Javascript JS:开关情况下的正则表达式

Javascript JS:开关情况下的正则表达式,javascript,Javascript,我尝试使用开关案例测试特定字符串,发现以下代码: let prop = "date myData"; switch (true) { case /str/.test(prop) : console.log("tata"); break; case /date/.test(prop): console.log("toto"); break;

我尝试使用开关案例测试特定字符串,发现以下代码:

let prop = "date myData";
switch (true) {
          case /str/.test(prop) :
            console.log("tata");
            break;

          case /date/.test(prop):
            console.log("toto");
            break;

          case /enum/.test(prop) :
            console.log("titi");
            break
          default :
            console.log("Nada");
            break;
}
它起作用了,但不能解决我的问题。例如,我想要得到字符串“date”。之前没有,之后也没有

在本例中,我希望我的控制台显示“Nada”

我不知道用这个代码怎么做。
解决方案?:)

正则表达式中需要开始符号和结束符号

/^date$/
或者使用字符串和等式进行简单测试

prop === 'date'


因为你有一个开关并不是你的第一选择——你只是在比较字符串是否相等——所以下面是一个更简单的方法

let prop=“date myData”;
让字符串={str:“tata”,date:“toto”,enum:“titi”}
设res=strings[prop]| |“Nada”;

控制台日志(res)要测试多个字符串是否相等,可以使用如下堆栈case语句:

switch (true) {
  case prop === "date":
  case prop === "param2":
    // Do something
    break;
}
或测试是否包含在静态数组中:

switch (true) {
  case ["date", "param2"].includes(prop):
    // Do something
    break;
}

尽管打开
true
可能不是最有效的方法。

如果你想要相等,为什么要使用正则表达式?对于这种情况,只需使用
prop==“date”
,这只是一个例子。我不想测试juste这个字符串,而是一个包含很多其他字符串的集合。谢谢!这正是我的解决方案!:d您可以打开
prop
变量。我想这是正确的方法。
switch (true) {
  case ["date", "param2"].includes(prop):
    // Do something
    break;
}