小程序端数字格式化验证

 2755

小程序端数字格式化验证


小程序端input为number类型的表单,调出的键盘只有数字且没有小数点和负号。显然并不符合要求。所以我们用text类型来自己判断

1,必须为数字

2,第一位不是小数点,且只能出现一个小数点

3,负号只能出现在第一位,且只能出现一次

4,如果是小数的话只保留两位小数

首先想到的是百度,但是不太符合,自己废了一些时间写了一个,希望能帮助到大家

  1. <input type="text" onblur="checkNum(this)">
  2. <script>
  3. function checkNum(obj){
  4.     let val = obj.value.replace(/(^\s*)|(\s*$)/g, "")
  5.         // 只能是负号,数字和小数点,不能是其他输入
  6.         val = val.replace(/[^\d.?!\-]/g, "")
  7.         // 保证第一位不能是点
  8.         val = val.replace(/^\./g, "");
  9.         // 负号只能出现一次
  10.         val = val.replace("-", "$#$").replace(/\-/g, "").replace("$#$", "-");
  11.         // 负号不能在中间出现
  12.         val = val.replace(/(\d+)\-(\d*)/g, '$1$2');
  13.         // 小数只能出现一次
  14.         val = val.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
  15.         // 小数点后面保留2位
  16.         val = val.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3');
  17.         // 重新赋值
  18.         obj.value = val
  19. }
  20. </script>


本文网址:https://www.zztuku.com/detail-12617.html
站长图库 - 小程序端数字格式化验证
申明:如有侵犯,请 联系我们 删除。

评论(0)条

您还没有登录,请 登录 后发表评论!

提示:请勿发布广告垃圾评论,否则封号处理!!

    编辑推荐