//用法,写个提交表单的方法,提交前使用
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 a = {""exp" : 正则表达式, "warning" : 提示信息};
//例:var numMatch = {"exp" : /^([A-Za-z0-9]+)?$/, "warning" : "请输入英文或数字!"};
//--------------js代码-----------------------------------------
/**
* 多表单项正则验证对象
* 例:
* 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" : "请输入英文或数字!"};