转换单个16进制字符为10进制数字,下面代码switch语句怎么编写

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
<body>
</div>
<!-- 将单个16进制字符转换为10进制 -->
<h1>将单个16进制字符转换为10进制</h1>
<input type="text" id="c">
<button id="btn1">计算</button>
<div id="result1">
</div>
</body>
<script>
     document.getElementById('btn1').addEventListener('click',()=>{
        c=document.getElementById('c').value//所输入的单个16进制字符
        // console.log(c)
        var r //转换后的结果
        //编码区域start //使用条件选择语句switch case 完成
        switch () {
            case :
                break;
        
            default:
                break;
        }


        //编码区域end
        document.getElementById('result1').innerHTML=r
    })
</script>
</html>

运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <!-- 将单个16进制字符转换为10进制 -->
    <h1>将单个16进制字符转换为10进制</h1>
    <input type="text" id="c" />
    <button id="btn1">计算</button>
    <div id="result1"></div>
    <script>
      document.getElementById("btn1").addEventListener("click", () => {
        c = document.getElementById("c").value; //所输入的单个16进制字符
        // console.log(c)
        var r; //转换后的结果
        //编码区域start //使用条件选择语句switch case 完成
        switch (/^[0-9,a-f]$/i.test(c)) {
          case true:
            r = parseInt(c, 16);
            break;

          default:
            r = "非法输入,请输入单个16进制数";
            break;
        }
        //编码区域end
        document.getElementById("result1").innerHTML = r;
      });
    </script>
  </body>
</html>