加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

带有正则表达式的Javascript inoperant Switch Case

发布时间:2020-12-14 06:03:59 所属栏目:百科 来源:网络整理
导读:看起来 javascript开关案例不喜欢正则表达式作为一个案例,因为它与静态值一起使用但我无法在case语句中使用正则表达式获得预期的答案. 您是否会确认js解释器的限制并提出解决方法(我的意思是不是if-then块套件)? 谢谢 示例(未给出预期答案,例如’case3′):
看起来 javascript开关案例不喜欢正则表达式作为一个案例,因为它与静态值一起使用但我无法在case语句中使用正则表达式获得预期的答案.

您是否会确认js解释器的限制并提出解决方法(我的意思是不是if-then块套件)?

谢谢

示例(未给出预期答案,例如’case3′):

<script type="text/javascript">
var testme = "pwd_foo";
var response = false;
var reg = /^pwd.+/;

switch (testme) {
case 'pwd':
    response = 'case1';
    break;
case reg.test:
    response = 'case2';
    break;
case /^pwd.+/:
   response = 'case3';
   break;
default:
    response = 'do sthg else';
}

alert('reg test: ' + reg.test(testme)+'nresponse:' + response);
</script>

解决方法

你的测试并没有真正适合转换.如果必须,你可以这样做,不推荐:

DEMO HERE

var testme = "pwd_foo",response;
var reg = /^pwd.+/;

switch (true) {
case testme=='pwd':
    response = 'case1';
    break;
case reg.test(testme):
    response = 'case2';
    break;
default:
    response = 'do sthg else';
}

alert('reg test: ' + reg.test(testme)+'nresponse:' + response);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读