因为库存只能是大于等于0的整数,并且如果超过两位的..."> 因为库存只能是大于等于0的整数,并且如果超过两位的..."> 工具类:JS用户只能输入正整数或者小数
 个人随笔
目录
工具类:JS用户只能输入正整数或者小数
2020-09-11 23:00:15

有时候,我们在web页面需要限定用户的输入字符,比如库存的话只能输入正整数,金额的话只能输入整数,怎么处理呢,下面这里有两个方法。

加入这里有输入框:

  1. <input type="text" placeholder="请输入库存" onkeyup="onlyNumber(this)" onafterpaste="onlyNumber(this)">

因为库存只能是大于等于0的整数,并且如果超过两位的话第一位不能为0,实现方式如下。onafterpaste主要是防止黏贴。

  1. function onlyNumber(o){
  2. //不可以是非数字
  3. o.value=o.value.replace(/\D/g,'');
  4. //如果大于等于两位数,则第一位不可以是0
  5. if(o.value.length>1){
  6. //第一位不能是0
  7. if(o.value.substring(0,1)==0){
  8. o.value=o.value.substring(1,o.value.length);
  9. }
  10. }
  11. //只能输入8位
  12. o.value=o.value.substring(0,8);
  13. }

逻辑很简单,相信大家都看得懂。


那么如果是金额呢,那么可以输入小数点,但是如果前两位没有小数点的话,第一位不可以是0.

  1. //只能输入整数或者小数,若是大于两位,前面两位之间没有小数点,且首位是0,则移除0
  2. function onlyNumberAddD(o){
  3. o.value = o.value.replace(/[^\d.]/g, ""); //仅保留数字和"."
  4. o.value = o.value.replace(/\.{2,}/g, "."); //两个连续的"."仅保留第一个"."
  5. o.value = o.value.replace(".", "$#*").replace(/\./g,'').replace('$#*','.');//去除其他"."
  6. o.value = o.value.replace(/^(\d+)\.(\d\d).*$/, '$1.$2');;//限制只能输入两个小数
  7. //若是没有小数点,那么长度大于1的话如果第一位是0,那么需要去除掉
  8. if(o.value.length>1){
  9. if(o.value.substring(0,2).indexOf(".")==-1){
  10. //第一位不能是0
  11. if(o.value.substring(0,1)==0){
  12. o.value=o.value.substring(1,o.value.length);
  13. }
  14. }
  15. }
  16. //只能输入8位
  17. o.value=o.value.substring(0,8);
  18. }

逻辑很简单,相信大家也看得懂。

 1520

啊!这个可能是世界上最丑的留言输入框功能~


当然,也是最丑的留言列表

有疑问发邮件到 : suibibk@qq.com 侵权立删
Copyright : 个人随笔   备案号 : 粤ICP备18099399号-2