Javascript表单提交——常用的正则处理

时间:2022-05-11 18:33:35
var common = {
        //input监听事件
        Immediately: function (element, webChange) {
            if (typeof element === "string") element = document.getElementById(element);
            if (!$.support.leadingWhitespace) {
                element.onpropertychange = function () { webChange(element) };
            } else {
                element.addEventListener("input", function () { webChange(element) }, false);
            }
        }
    }
    var _v = {
        //非空验证
        v_isnull: function (str) {
            if (this.trim(str) == '') {
                return false;
            }
            return true;
        },
        //字符串是否有空字符
        v_str_s: function (str) {
            var n_reg = /\s/;
            if (n_reg.test(str)) {
                return false;
            }
            return true;
        },
        //验证字符范围
        v_str_len: function (str, len, len2) {
            if (str.length < len || str.length > len2) {
                return false;
            }
            return true;
        },
        //密码比较
        v_string: function (str1, str2) {
            if (str1 != str2) { return false; }
            return true;
        },
        //手机验证
        v_phone: function (str) {
            var reg = /^1[0-9]{10}$/;
            if (!reg.test(str)) { return false; }
            return true;
        },
        //密码强度
        checkStrong: function (sValue) {
            /** 强度规则
    + ------------------------------------------------------- +
    1) 任何少于6个字符的组合,弱;任何字符数的同类字符组合,弱;
    2) 任何字符数的两类字符组合,中;
    3) 12位字符数以下的三类或四类字符组合,强;
    4) 12位字符数以上的三类或四类字符组合,非常好。
    + ------------------------------------------------------- +
    **/
            var modes = 0;
            if (sValue.length < 6) return modes;
            if (/\d/.test(sValue)) modes++; //数字
            if (/[a-z]/.test(sValue)) modes++; //小写
            if (/[A-Z]/.test(sValue)) modes++; //大写  
            if (/\W/.test(sValue)) modes++; //特殊字符
            switch (modes) {
                case 1:
                    return 1;
                    break;
                case 2:
                    return 2;
                    break;
                case 3:
                    if (sValue.length >= 12) {
                        return 4;
                    }
                    return sValue.length > 10 ? 3 : 2;
                    break;
                case 4:
                    return sValue.length > 12 ? 4 : 3;
                    break;
            }
        },
        //15位和18位身份证号码的正则表达式
        validateIdCard: function (idCard) {
            var regIdCard = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
            if (!regIdCard.test(idCard)) { return false; }
            return true;
        },
        //去除前后空格
        trim: function (s) {//去除多于空格
            s = s || '';
            return s.replace(/^\s*|\s*$/g, '');
        },
        //6位验证码
        v_code: function (str) {
            if (!this.v_str_s(str)) return false;
            var reg1 = /^\d{6}/;
            if (!reg1.test(str)) return false;
            return true;
        }
    }

在验证中利用input focus改变hidden的值 <input type="hidden" id="rhid" value="0" autocomplete="off" /> 

可以有效的表达表单是否可以提交!不要使用提交时又验证一次!

autocomplete="off"//可以防止浏览的深度缓存,如火狐