You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让JavaScript的switch函数兼容大小写不敏感的输入?

解决JavaScript Switch语句大小写不敏感匹配的问题

这问题太常见啦!JavaScript里字符串比较是大小写敏感的,所以你输入的'thu'和case里的'Thu'会被当成完全不同的字符串,导致匹配失败。搞定这个的核心思路就是:把用户输入和case中的字符串统一转换成相同的大小写格式,要么全大写要么全小写,这样就能忽略大小写差异正常匹配了。

方案一:提前转换输入字符串的大小写

先把用户输入的字符串转成大写(或小写),然后把case里的对应值也改成相同格式,代码修改后如下:

<html>
<body>
<script>
var days = 'thu';
// 将输入字符串统一转为大写
days = days.toUpperCase();
switch(days) {
    case 'MON':
        document.write("Today is Monday");
        break;
    case 'TUE':
        document.write("Today is Tuesday");
        break;
    case 'WED':
        document.write("Today is Wednesday");
        break;
    case 'THU':
        document.write("Today is Thursday");
        break;
    case 'FRI':
        document.write("Today is Friday");
        break;
    default:
        document.write("Weekend...!!!");
}
</script>
</body>
</html>

方案二:在Switch表达式中直接转换

如果你不想修改原始的days变量,可以直接在switch的判断表达式里做大小写转换,这样更灵活:

<html>
<body>
<script>
var days = 'thu';
// 直接在switch的判断逻辑里转换输入的大小写
switch(days.toUpperCase()) {
    case 'MON':
        document.write("Today is Monday");
        break;
    case 'TUE':
        document.write("Today is Tuesday");
        break;
    case 'WED':
        document.write("Today is Wednesday");
        break;
    case 'THU':
        document.write("Today is Thursday");
        break;
    case 'FRI':
        document.write("Today is Friday");
        break;
    default:
        document.write("Weekend...!!!");
}
</script>
</body>
</html>

补充说明

  • 两种方案效果完全一致,选哪种看你需求:如果需要保留原始输入的字符串,方案二更合适;如果后续还要用到转换后的字符串,方案一更方便。
  • 你也可以用toLowerCase()代替toUpperCase(),只要case里的字符串也对应改成全小写就行(比如case 'mon'),逻辑是一样的。

内容的提问来源于stack exchange,提问作者Raza Khan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:02:53