• js使用正则表达式实现文本框只能输入数字和小数点


    第一种情况:且限制小数点前最大3位数,小数点后最大3为三位

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <script src="jquery.js" type="text/javascript"></script>
    <title>无标题文档</title>
    </head>

    <body>
    <input type="text" class="InputText" />
    </body>
    </html>
    <script type="text/javascript">
    $(function(){
        $('.InputText').keyup(function(){
                if(this.value.length==1){
                    this.value=this.value.replace(/[^1-9]/g,'')
                }else{
                    this.value = this.value.replace(/[^d.]/g,"");
                    this.value = this.value.replace(/.{2,}/g,".");
                    this.value = this.value.replace(/^(-)*(d+).(ddd).*$/,'$1$2.$3');
                    var indexOfs = this.value.indexOf(".");
                    var Num = this.value.split('.').length-1;
                    if(Num>1){
                      var Length = this.value.length;
                      $(this).val($(this).val().substr(0,(Length-1)));
                    }
                    if(indexOfs == -1){
                     if(this.value.length>3){
                      $(this).val($(this).val().substr(0,3));
                     }
                  }
                }
                
            })
        })
    </script>

    第二种情况:

    1.禁止录入任何非数字和点

    2.禁止录入两个以上的点

    3.禁止录入小数点后point位以上

    4.禁止首位数是.

    5.禁止录入整数部分两位以上,但首位为0 

    <!Doctype html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>正则表达式</title>
    <link rel="stylesheet" href="css/common.css">
    <link rel="stylesheet" href="css/dragResize.css">
    <link rel="stylesheet" href="css/editor.css">
    </head>
    <body>
    <input type="text" name="city" value="" onKeyUp="regExp(this)"/>
    </body>
    </html>
    <script type="text/javascript">
    /**
    * 实时动态强制更改用户录入
    **/
    function regExp(th){
    var point = 2
    var regStrs = [
    ['^0(\d+)$', '$1'], //禁止录入整数部分两位以上,但首位为0 如果$1改为0则首位如果是0后面输入数字时不可输入均显示为0
    ['[^\d\.]+$', ''], //禁止录入任何非数字和点
    ['\.(\d?)\.+', '.$1'], //禁止录入两个以上的点
    ['^(\d+\.\d{'+point+'}).+', '$1'],//禁止录入小数点后point位以上
    ['^\.','']//禁止首位数是.
    ];
    for(var i=0; i<regStrs.length; i++){
    var reg = new RegExp(regStrs[i][0]);
    th.value = th.value.replace(reg, regStrs[i][1]);
    }
    }
    </script>

  • 相关阅读:
    没有加注解的后果
    异常:javax.servlet.jsp.JspTagException: Don't know how to iterate over supplied "items" in &lt;forEach&gt;
    页面的跳转
    SpringBoot的修改操作
    抛出异常
    SpringBoot中的控制层的程序中的方法有返回值的原因
    Maven创建的项目使用SpringBoot框架运行时Progress窗口出现的过程
    @Entity注解不同来源
    maven项目不能正常导入到eclipse中
    使用mpvue开发小程序特别需要注意生命周期勾子created和beforeCreate问题
  • 原文地址:https://www.cnblogs.com/dearxinli/p/6629129.html
Copyright © 2020-2023  润新知