replace 正则表达式,N位小数点

本文详细介绍使用jQuery进行各种输入验证的方法,包括正整数、带逗号的整数、中文、限定字符长度的英文与数字组合、纯数字、纯英文、保留特定小数位数的数字等,同时提供了具体的实现代码。
摘要由CSDN通过智能技术生成
 
$(function(){

    // 验证正则,直接在input添加属性

    // 正整数: zsyz="1";
    $(document).on("keyup", 'input[zsyz=1]', function () {
        this.value = this.value.replace(/\D/g, '') // 整数
    })

    // 输入整数且可以输入逗号: zsxs="1"
    $("input[zsxs=1],textarea[zsxs=1]").keyup(function(){
        this.value=this.value.replace(/[^\r\n0-9\,\,]/g,'');
    })

    // 只能输入中文: ch="1"
    $("input[ch=1],textarea[ch=1]").keyup(function(){
        this.value=this.value.replace(/[u4E00-u9FA5]/g,'');        
    })


    // 仅限15个英文、数字、字符: yw="1"
    $(document).on("keyup", "input[yw=1]", function () {
        this.value = this.value.replace(/[^\w\.\/]/ig, '')
    })

    //仅限15个英文、数字、字符和@: yw="2"
    $(document).on("keyup", "input[yw=2]", function () {
        this.value = this.value.replace(/[^\w\.\@\/]/ig, '')
    })

    //仅能输入数字: num="1"
    $(document).on("keyup", "input[num=1]", function () {
        this.value = this.value.replace(/[^\d]/g, '')
    })

    //仅限英文: en="1"
    $(document).on("keyup", "input[en=1]", function (event) {
        this.value = this.value.replace(/[^a-zA-Z]+/g, '');
    })

    //仅限英文,数字: ennum="1"
    $(document).on("keyup", "input[ennum=1]", function (event) {
        //this.value = this.value.replace(/[^\w\.\/]/ig,'');
        this.value = this.value.replace(/[^\d|a-zA-Z]/g,'');
    })

    // 保留小数点2位,不四舍五入: decimal="1"
    function decimal(obj) {
        obj.value = obj.value.replace(/[^\d.]/g, '');//清楚数字和.以外的字数
        obj.value = obj.value.replace(/^\./g, "");
        obj.value = obj.value.replace(/\.{2,}/g, '');//保留第一个,清楚多余的
        //obj.value = obj.value.replace(".");
        obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3');
    }
    $(document).on("keyup", "input[decimal=1]", function (event) {
        decimal(this)
    })

    
    // 将数字保留小数点后N位,不四舍五入
    //num => 即将要被截取的数字,dot_behind => 保留小数点后的位数
    function subNum(num,dot_behind)
    {        
        num=parseFloat(num);
        var dot_behind_wz=dot_behind+1;
        var num1=num.toString(10);
        var start_wz=num1.lastIndexOf('.');
        if(start_wz==-1)
        {
            // 没有小数点
            return parseFloat(num);
        }
        var num2=num1.substring(0,start_wz+dot_behind_wz);
        var num3=parseFloat(num2);
        num3=num3.toFixed(dot_behind);
        num3=parseFloat(num3);
        return num3;
    }


    //保留N位小数,无四舍五入, 添加属性 xsd_data="n"
    function xsdN( dom , ws){
        var num = dom.val();
        ws = parseInt(ws);
        var start_wz = num.indexOf(".");
        if( start_wz!=-1){  //当存在小数点时,做切割
            if(start_wz !=num.length-1){
                var tmp = start_wz+ws+1;
                var num1= num.substring(0,tmp);
                var num2 = parseFloat(num1);
                dom.val(num2);
            }
        }
        else{ //当不存在小数点时,不允许输入数字,小数点外的字符
            num = parseFloat(num);
            if(num){
                dom.val(num);
            }else{ //num==NaN的时候
                if(num==0){
                    dom.val("0");
                }
                else{
                    dom.val("");
                }

            }

        }

    }
    //保留2 位
    $(document).on("keyup","input[xsd_data=2]",function(){
        xsdN( $(this),$(this).attr("xsd_data"));
    })
    //保留3 位
    $(document).on("keyup","input[xsd_data=3]",function(){
        xsdN( $(this),$(this).attr("xsd_data"));
    })
    //保留4 位
    $(document).on("keyup","input[xsd_data=4]",function(){
        xsdN( $(this),$(this).attr("xsd_data"));
    })





    //小数点2位保留位
    function xsdyz(obj) {
        obj.value = obj.value.replace(/[^\d.]/g, '');//清楚数字和.以外的字数
        obj.value = obj.value.replace(/^\./g, "");
        obj.value = obj.value.replace(/\.{2,}/g, '');//保留第一个,清楚多余的
        //obj.value = obj.value.replace(".");
        obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3');
    }

    $(document).on("keyup", "input[xsdyz=1],textarea[xsdyz=1]", function (event) {
        xsdyz(this);
    })




   //浮点数 2位小数(可以为负数)
    function fds(obj) {
        obj.value = obj.value.replace(/[^\d.-]/g, '');//清楚数字和.以外的字数
        obj.value = obj.value.replace(/^\./g, "");
        obj.value = obj.value.replace(/^-\./g, "");
        obj.value = obj.value.replace(/\.{2,}/g, '');//保留第一个,清楚多余的
        obj.value = obj.value.replace(/\-{2,}/g, '');//保留第一个,清楚多余的
        obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3');
    }
   $(document).on("keyup", "input[fds=1],textarea[fds=1]", function (event) {
       fds(this);
    })

    $("input[xsdyz=1],textarea[xsdyz=1]").bind("keypress", function (event) {
        $(this).css("ime-mode", "disabled");
        var event = event || window.event;
        var this_val = $(this).val();
        //clearNum(this)
        //控制第一个不能输入小数
        if (this_val.length == 0 && event.which == 46) {
            event.preventDefault();
            return;
        }
        //只能输入一个小数点
        if (this_val.indexOf('.') != -1 && event.which == 46) {
            event.preventDefault();
            return;
        }
        //禁止除了数字以外输入
        if (event.which && (event.which < 48 || event.which > 57 ) && event.which != 8 && event.which != 46) {
            event.preventDefault();
            return;
        }

    })
})    

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值