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;
}