Jquery正则表达式验证后为什么不正确的值还在

需要做一个验证数字保留小数点后两位数,正则验证只能输入数字以及保留两位数小数,现在问题在于正则验证以后不正确的值还存在。求看看
因为输入表单的input框45个,有没有什么方法能便捷去验证,还是只能一个一个验证,

img


<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>Document</title>
  </head>
  <body>
    <input id="surplusNum" type="text" />
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
    <script>
      var res = /^(([1-9]{1}\d*)|(0{1}))(\.\d{1,2})?$/;
      $("#surplusNum").keyup(function () {
        var surplusNum = $("#surplusNum").val();
        if (!res.test(surplusNum)) {
          $("#surplusNum").val("");
        }
      });
    </script>
  </body>
</html>

不太懂你的问题,但您的最后一行代码有问题,surplusNum.val('')改成 $('#surplusNum').val('')