切换组合案例字符串正则表达式和数字

J00*_*0MZ 5 javascript regex jquery switch-statement

有没有办法在单个Javascript switch语句中创建多个案例?

在我的代码中,我通过jQuery接收字段的值.

是否有可能一个案例检查字符串正则表达式而另一个案例检查相同变量的数量?

我在想:

var field = $(this).val();
var msg;
switch (field) 
{
    case field.test('Yes'):

     msg = "FOO\n";
     break;

    case 10: 
     msg = "BAR\n";
     break;
}
Run Code Online (Sandbox Code Playgroud)

虽然我在这里看到:在JavaScript中用于字符串匹配的switch语句

使用开关字符串的方法是通过向switch语句发送"true"值.

什么是最简洁(和正确!)的方法来实现这一目标?

J00*_*0MZ 10

好的,在我的代码上方编译两个答案,并且(在我看来)最优雅的是:

var fieldVal = $(this).val();

var msg;

switch (true) 
{
  case /Yes/.test(fieldVal):
      msg = "FOO";
      break;
  case fieldVal > 10 :
      msg = "BAR";
      break;
}
Run Code Online (Sandbox Code Playgroud)

这作为单独的if语句起作用,因为我们正在评估案例是否返回true,但是更清晰,更简洁,可以让我们选择在一个开关中添加完全不同的测试语句.

它工作的原因可能是所评估的case表达式被解释为true或false值,然后检查main - switch(true)