所以可以说我有这个开关:
switch(str){
case "something": //a defined value
// ...
break;
case /#[a-zA-Z]{1,}/ //Matches "#" followed by a letter
}
我几乎可以肯定上述内容几乎是不可能的......但是实现类似目标的最佳方法是什么?也许只是简单的 if..else..if
?那就太无聊了...
那么您将如何实现这一目标?
最佳答案
在开始切换之前,您可以获取各种模式的匹配, 并将案例设置为匹配的索引。
(其他条件即使不是更高效,也会更容易阅读。)
//var str= 'something';
var str='#somethingelse';
var M= /^(something)|(#[a-zA-Z]+)$/.exec(str);
if(M){
switch(M[0]){
case M[1]:
// ...
alert(M[1]);
break;
case M[2]:
//...
alert(M[2])
break;
}
}
关于javascript - 使用部分值/正则表达式进行切换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5601728/