js使用正则表达式对文本框进行限制输入

1.文本框只能输入大于等于0,小于等于100,保留两位小数的数字,小数点只能出现一次

 function verifyRatio(obj) { // 值允许输入0-100的小数
            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(".", "$#$").replace(/\./g, "").replace("$#$", "."); //保证.只出现一次,而不能出现两次以上
            obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3');
            obj.value = obj.value.replace(/^[0]{0,}([1-9][0-9])[1-9]$/, "$1");//可能以0开头的1百零几的整数
            obj.value = obj.value.replace(/^[0]{0,}([2-9][0-9])[0-9]$/, "$1");//可能以0开头的2百零几的整数
            obj.value = obj.value.replace(/^[0]{0,}([1-9][1-9])[0-9]$/, "$1");//可能以0开头的几百几十的整数
            obj.value = obj.value.replace(/^[0]{0,}([1][0][0])[0-9]$/, "$1");//可能以0开头,输入100后输入其他数字
            obj.value = obj.value.replace(/^[0]{0,}([1-9][0-9][0-9]).*$/, "$1");//可能以0开头大于100的小数
        }

可能会有重复或者纰漏,特殊情况太多,所以感觉繁琐无序,还望指教。

2.文本框对手机号验证

 function verifyPhoneNum(obj) { // 值允许输入手机号数字
            var regph = /^0?(13[0-9]|15[012356789]|17[0-9]|18[0-9]|14[57])[0-9]{8}$/;//验证手机号码
            obj.value = obj.value.replace(/[^\d-]/g, ""); //先把非数字的都替换掉,除了数字      
            var reph = obj.value.match(regph);
            if (reph == null) {
                $("#txtContactInfo").tooltip("请输入正确的手机号");
                event.stopPropagation()
            }
            else {
                $("#txtContactInfo").tooltip("");
            }
        }

 

posted @ 2015-05-07 10:35  锋利的C#  阅读(1769)  评论(0编辑  收藏  举报