html 根据配置项统一检查文本框数据规范

    <div>
        中文名:<input id="txtName" type="text" /><br />
        身份证号:<input id="txtPersonID" type="text" /><br />
        <input type="button" value="测试" onclick="chk();" />
    </div>
    <script type="text/javascript">
        //input text文本录入框数据统一检查
        //items:检查配置项,传入对象数组
        //配置项键说明:ID:录入控件ID; ColumnName:录入内容字段名,MustInput:是否必填,Check:检查方式[1:如果是值格式固定的检查用正则表达式,这里传入正则表达式的字符串 2:其它特殊值格式检查,可以自定义检查函数,这里传入检查函数(参数为文本框的值,返回值bool类型)],CheckErrInfo:检查失败提示信息
        function checkInput(items) {
            var info = "";
            //检查参数类型
            if (typeof items == "object" && typeof items.length == "number") {
                for (var i = 0; i < items.length; i++) {
                    if (typeof items[i].ID != 'string' || typeof items[i].ColumnName != 'string' || typeof items[i].MustInput != 'boolean' || (typeof items[i].Check != 'string' && typeof items[i].Check != 'function') || typeof items[i].CheckErrInfo != 'string') continue;

                    //取值
                    var value = document.getElementById(items[i].ID).value;
                    //必填项检查
                    if (items[i].MustInput == true) {
                        if (value == '') {
                            info += items[i].ColumnName + "必填;";
                        }
                    }
                    else {
                        continue; //不是文本框,
                    }
                    //检查数据规范
                    if (value != '') {
                        if (typeof items[i].Check == 'string') {
                            if (!regValid(items[i].Check, value)) {
                                info += items[i].ColumnName + items[i].CheckErrInfo + ";";
                            }
                        }
                        else if (typeof items[i].Check == 'function') {
                            if (!items[i].Check(value)) {
                                info += items[i].ColumnName + items[i].CheckErrInfo + ";";
                            }
                        }
                    }
                }
            }
            return info;
        }

        function regValid(regStr, value) {
            var rtn = false;
            if (typeof regStr == "string" && regStr != '' && typeof value == 'string') {
                var re = new RegExp(regStr);
                rtn = re.test(value);
            }
            return rtn;
        }

        //测试
        function chk() {
            var chkItems = new Array();
            //正则表达式检查中文名称
            chkItems.push({ "ID": "txtName", "ColumnName": "名称", "Check": "^[\u4E00-\u9FA5\uF900-\uFA2D]{2,4}$", "MustInput": true, "CheckErrInfo": "只能2-4位汉字" });
            //也可以自定义函数检查,这里用chkPersonId
            chkItems.push({ "ID": "txtPersonID", "ColumnName": "身份证号", "Check": chkPersonId, "MustInput": true, "CheckErrInfo": "只能17位数字+1位数字或字母" });
            var msg = checkInput(chkItems);
            if (msg != '') alert(msg);
        }

        //自定义检查函数
        function chkPersonId(personId) {
            return regValid("^[0-9]{17}[0-9a-zA-Z]{1}$", personId);
        }

    </script>

 

posted @ 2017-08-23 11:53  chyun2011  阅读(285)  评论(0编辑  收藏  举报