input输入框对金额类型数字限制,只能输入数字和小数点;

最近需要对金额输入框进行限定,要求如下:

只能输入数字和小数点;

 

 

  • 小数点只能有1个
  • 第一位不能是小数点
  • 第一位如果输入0,且第二位不是小数点,则去掉第一位的0
  • 小数点
  • 后保留2位
    NumberCheck(num) {
      var str = num;
      var len1 = str.substr(0, 1);
      var len2 = str.substr(1, 1);
      //如果第一位是0,第二位不是点,就用数字把点替换掉
      if (str.length > 1 && len1 == 0 && len2 != ".") {
        str = str.substr(1, 1);
      }
      //第一位不能是.
      if (len1 == ".") {
        str = "";
      }
      //限制只能输入一个小数点
      if (str.indexOf(".") != -1) {
        var str_ = str.substr(str.indexOf(".") + 1);
        if (str_.indexOf(".") != -1) {
          str = str.substr(0, str.indexOf(".") + str_.indexOf(".") + 1);
        }
      }
      //正则替换,保留数字和小数点
      str = str.replace(/[^\d^\.]+/g,'')
      //如果需要保留小数点后两位,则用下面公式
      str = str.replace(/\.\d\d$/,'')
      return str;
    }

 

js代码如下:

1

2

3

4

5

6

7

8

9

10

11

<script language="JavaScript" type="text/javascript"

function clearNoNum(obj){ 

    obj.value = obj.value.replace(/[^\d.]/g,"");  //清除“数字”和“.”以外的字符  

    obj.value = obj.value.replace(/\.{2,}/g,"."); //只保留第一个. 清除多余的  

    obj.value = obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$","."); 

    obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3');//只能输入两个小数  

    if(obj.value.indexOf(".")< 0 && obj.value !=""){//以上已经过滤,此处控制的是如果没有小数点,首位不能为类似于 01、02的金额 

        obj.value= parseFloat(obj.value); 

    

</script> 

  html代码:

1

2

3

4

5

6

7

8

9

<!DOCTYPE html>

<html>

    <head>

        <title>demo</title>

    </head>

    <body>

        <input type="text" onkeyup="clearNoNum(this)">

    </body>

</html>

1.只能输入数字和英文的:


<input onkeyup="value=value.replace(/[\W]/g,'') " onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))" ID="Text1" NAME="Text1">

2.只能输入数字的: 

<input onkeyup="value=value.replace(/[^\d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))" ID="Text2" NAME="Text2">

3.只能输入汉字的:

<input onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))" ID="Text4" NAME="Text4">

 4.只能为数字(有闪动)

<input onkeyup="value="/value.replace(/["^\d]/g,’’) "onbeforepaste="clipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^\d]/g,’’))">

5.只能为数字(无闪动)

<input ime-mode:disabled" οnkeydοwn="if(event.keyCode==13)event.keyCode=9" onKeyPress="if ((event.keyCode<48 || event.keyCode>57)) event.returnValue=false">
  
6.只能输入英文和数字(有闪动)
<input οnkeyup="value="/value.replace(/[\W]/g,"’’)" onbeforepaste="clipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^\d]/g,’’))">
  
7.屏蔽输入法
<input type="text" name="url" ime-mode:disabled" οnkeydοwn="if(event.keyCode==13)event.keyCode=9">
  
8. 只能输入两位小数,三位小数(有闪动)
<input maxlength=9 οnkeyup="if(value.match(/^\d{3}$/))value="/value.replace(value,parseInt(value/10))" ;value="/value.replace(/\.\d*\./g,’."’)" onKeyPress="if((event.keyCode<48 || event.keyCode>57) && event.keyCode!=46 && event.keyCode!=45 || value.match(/^\d{3}$/) || /\.\d{3}$/.test(value)) {event.returnValue=false}" id=text_kfxe name=text_kfxe>

9.种正则表达式   

  1. "^\\d+$"  //非负整数(正整数 + 0)   
  2. "^[0-9]*[1-9][0-9]*$"  //正整数   
  3. "^((-\\d+)|(0+))$"  //非正整数(负整数 + 0)   
  4. "^-[0-9]*[1-9][0-9]*$"  //负整数   
  5. "^-?\\d+$"    //整数   
  6. "^\\d+(\\.\\d+)?$"  //非负浮点数(正浮点数 + 0)   
  7. "^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$"  //正浮点数   
  8. "^((-\\d+(\\.\\d+)?)|(0+(\\.0+)?))$"  //非正浮点数(负浮点数 + 0)   
  9. "^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$"  //负浮点数   
  10. "^(-?\\d+)(\\.\\d+)?$"  //浮点数   
  11. "^[A-Za-z]+$"  //由26个英文字母组成的字符串   
  12. "^[A-Z]+$"  //由26个英文字母的大写组成的字符串   
  13. "^[a-z]+$"  //由26个英文字母的小写组成的字符串   
  14. "^[A-Za-z0-9]+$"  //由数字和26个英文字母组成的字符串   
  15. "^\\w+$"  //由数字、26个英文字母或者下划线组成的字符串   
  16. "^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$"    //email地址   
  17. "^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$"  //url   

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值