使用部分值/正则表达式进行切换?
假设我有这个开关:
switch(str){
case "something": //a defined value
// ...
break;
case /#[a-zA-Z]{1,}/ //Matches "#" followed by a letter
}
我几乎确定上述情况几乎是不可能的......但是实现类似目标的最佳方法是什么?也许只是简单的 if..else..if
?那会很无聊......
那么你将如何实现这一点呢?
So lets say I had this switch:
switch(str){
case "something": //a defined value
// ...
break;
case /#[a-zA-Z]{1,}/ //Matches "#" followed by a letter
}
I'm almost sure that the above is almost impossible...but what would be the best way to achieve something similar? Maybe just plain if..else..if
s? That'd be boring...
So how would you achieve this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在开始切换之前,您可以获取各种模式的匹配,
并将案例设置为匹配的索引。
(其他条件即使不是更高效,也更容易阅读。)
You can get the matches for various patterns before you begin the switch,
and set the cases to the index of the match.
(Other conditionals would be easier to read, if not more efficient.)
您可以使用单个正则表达式。它不一定不那么无聊,但它可以完成工作。
You can use a single regexp. It is not necessarily less boring but it gets the job done.