日期:2014-05-16 浏览次数:20379 次
function submitForm() { var matcher = new checkObj(); matcher.add($("[name='nodePort']").val(), portMatch); matcher.add($("[name='nodeIP']").val(), ipMatch); if(!matcher.check()) return; document.cardForm.submit(); }
/** * 多表单项正则验证对象 * 例: * var matcher = new checkObj(); * matcher.add($("[name='nodePort']").val(), portMatch); * //ipMatch["warning"] = "IP地址错误!"; // 自定义提示信息,覆盖默认的提示信息 * matcher.add($("[name='nodeIP']").val(), ipMatch); * if(!matcher.check()) return; */ function checkObj() { var _this = this; this.array = new Array(); /** * 增加需要验证的表单值和正则 * @param 要验证的表单值 * @param 正则对象 */ this.add = function(value, expObj) { var tempMap = {}; tempMap[value] = expObj; this.array.push(tempMap); } /** * 开始验证 */ this.check = function() { return checkInputs(_this.array); } } /** * 多表单项正则验证 * @param 验证对象集合 * @return 验证通过返回true; */ function checkInputs(paramArray) { var flag = true; if (paramArray == undefined || paramArray == null) { return flag; } for (var i in paramArray) { for (var key in paramArray[i]) { if(!checkInput(key, paramArray[i][key])) { flag = false; } } if (!flag) { break; } } return flag; } /** * 单个表单项正则验证 * @param 表单项需要验证的值 * @param 验证对象,如ipMatch,portMatch,是map类型,格式为{"exp":"正则条件","warning":"提示语"} * @param 提示信息(不必填) * @return 验证通过返回true,调用函数例子if (!checkInput) return; */ function checkInput(value, paramMap, warning) { if (value == undefined || value == null) { return true; } if (paramMap["exp"] == undefined || paramMap["exp"] == null) { return true; } var exp = paramMap["exp"]; var reg = value.match(exp); if (reg == null) { if (warning != undefined && warning != null) { alert(warning); } else { alert(paramMap["warning"]); } return false; } return true; } // 判空 var nullMatch = {"exp" : /^\S+$/, "warning" : "请将必填选项填写完整,且不能有空格!"}; // ip正则 var ipMatch = {"exp" : /^(([1-9]|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(([0-9]|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.){2}([1-9]|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))?$/, "warning" : "请输入正确的IP地址格式!"}; // 端口号正则 var portMatch = {"exp" : /^([0-9]|[1-9]\d|[1-9]\d{2}|[1-9]\d{3}|[1-5]\d{4}|6[0-4]\d{3}|65[0-4]\d{2}|655[0-2]\d|6553[0-5])?$/, "warning" : "请输入正确的端口号!"}; // 手机号 var mobileMatch = {"exp" : /^((13+\d{9})|(15+\d{9})|(18+\d{9}))?$/, "warning" : "请输入正确的手机号!"}; // 固定电话 var telMatch = {"exp" : /^((\(\d{3,4}\)|\d{3,4}-|\s)?\d{8})?$/, "warning" : "请输入正确的固定电话号码!"}; // 邮箱 var emailMatch = {"exp" : /^(\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*)?$/, "warning" : "请输入正确的电子邮箱号!"}; // 身份证号码 var idCardMatch = {"exp" : /^(\d{18}|\d{15})?$/, "warning" : "请输入正确的身份证号码!"}; // 中文 var cnMatch = {"exp" : /^([\u4e00-\u9fa5]{0,})?$/, "warning" : "请输入中文汉字!"}; // 数字 var nanMatch = {"exp" : /^[0-9]*$/, "warning" : "请输入数字!"}; // 整数或小数 var numMatch = {"exp" : /^([0-9]+\.{0,1}[0-9]{0,2})?$/, "warning" : "请输入数字!"}; // 正整数 var piMatch = {"exp" : /^(0|[1-9][0-9]*)?$/, "warning" : "请输入正整数!"}; // 英文或数字 var numMatch = {"exp" : /^([A-Za-z0-9]+)?$/, "warning" : "请输入英文或数字!"};