常用validate验证
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<script type="text/javascript" src="js/jquery-1.8.3.js"></script>
<script type="text/javascript" src="js/jquery.validate.min.js"></script>
</head>
<body>
<form style="width: 300px" id="myFrom">
<fieldset style="width: 300px">
<legend>用户注册</legend>
<table align="center" border="0">
<tr><td>姓名:</td><td><input type="text" name="name" id="name"/></td></tr>
<tr><td>年龄:</td><td><input type="text" name="age" id="age"/></td></tr>
<tr><td>电话:</td><td><input type="text" name="phone" id="phone"/></td></tr>
<tr><td>生日:</td><td><input type="text" name="date" id="date"/></td></tr>
<tr><td>密码:</td><td><input type="text" name="password" id="password"/></td></tr>
<tr><td>请再次输入:</td><td><input type="text" name="password2" id="password2"/></td></tr>
<tr><td>身份证:</td><td><input type="text" name="idcard" id="idcard"/></td></tr>
<tr><td>个人主页:</td><td><input type="text" name="page" id="page"/></td></tr>
<tr><td>薪资:</td><td><input type="text" name="money" id="money"/></td></tr>
<tr><td colspan="2"><input type="submit"/></td></tr>
</table>
</fieldset>
</form>
</body>
<script type="text/javascript">
function isIdCardNo(num) {
var factorArr = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1);
var parityBit = new Array("1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2");
var varArray = new Array();
var intValue;
var lngProduct = 0;
var intCheckDigit;
var intStrLen = num.length;
var idNumber = num;
// initialize
if ((intStrLen != 15) && (intStrLen != 18)) {
return false;
}
// check and set value
for (i = 0; i < intStrLen; i++) {
varArray[i] = idNumber.charAt(i);
if ((varArray[i] < '0' || varArray[i] > '9') && (i != 17)) {
return false;
} else if (i < 17) {
varArray[i] = varArray[i] * factorArr[i];
}
}
if (intStrLen == 18) {
//check date
var date8 = idNumber.substring(6, 14);
if (isDate8(date8) == false) {
return false;
}
// calculate the sum of the products
for (i = 0; i < 17; i++) {
lngProduct = lngProduct + varArray[i];
}
// calculate the check digit
intCheckDigit = parityBit[lngProduct % 11];
// check last digit
if (varArray[17] != intCheckDigit) {
return false;
}
}
else { //length is 15
//check date
var date6 = idNumber.substring(6, 12);
if (isDate6(date6) == false) {
return false;
}
}
return true;
};
function isDate6(sDate) {
if (!/^[0-9]{6}$/.test(sDate)) {
return false;
}
var year, month, day;
year = sDate.substring(0, 4);
month = sDate.substring(4, 6);
if (year < 1700 || year > 2500) return false;
if (month < 1 || month > 12) return false;
return true;
};
function isDate8(sDate) {
if (!/^[0-9]{8}$/.test(sDate)) {
return false;
}
var year, month, day;
year = sDate.substring(0, 4);
month = sDate.substring(4, 6);
day = sDate.substring(6, 8);
var iaMonthDays = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
if (year < 1700 || year > 2500) return false;
if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) iaMonthDays[1] = 29;
if (month < 1 || month > 12) return false;
if (day < 1 || day > iaMonthDays[month - 1]) return false;
return true;
};
$(function() {
jQuery.validator.addMethod("phone", function(value, element) {
return this.optional(element)
|| /^1[34589]\d{1}\d{4}\d{4}( x\d{1,6})?$/.test(value);
}, "手机号码格式不正确");
jQuery.validator.addMethod("isIdCardNo", function (value, element) {
return this.optional(element) || isIdCardNo(value);
}, "请正确输入您的身份证号码");
$('#myFrom').validate({
debug:true,
rules : {
name : {
required : true,
maxlength : 30
},
idcard : {
required : true,
isIdCardNo:true,
minlength : 18,
maxlength:18,
},
phone : {
required : true,
phone : 'required',
minlength : 11,
maxlength : 11
},
age : {
required : true,
digits:true,
max:150,
min:0
},
date : {
required : true,
date:true,
},
password : {
required : true,
maxlength : 50
},
password2 : {
required : true,
equalTo:"#password",
maxlength : 50
},
page : {
required : true,
url:true,
},
money:{
required : true,
number:true ,
min:0,
}
},
messages : {
name : {
required : '不能为空',
maxlength : '不能超过30个字符'
},
idcard : {
required :'不能为空',
maxlength:'不能超过18个字符'
},
phone : {
required : '不能为空',
minlength :'请输入11位电话号码',
maxlength : '请输入11位电话号码'
},
age : {
required : '不能为空',
digits:'请输入数字',
max:'请输入您的正确年龄',
min:'请输入您的正确年龄'
},
date : {
required : '不能为空',
date:'例如:2009-06-23',
},
password : {
required : '不能为空',
maxlength :'不能超过50个字符'
},
password2 : {
required : '不能为空',
equalTo:'两次密码不相等',
maxlength : '不能超过50个字符'
},
page : {
required : '不能为空',
url:'请输入正确链接地址',
},
money:{
required : '不能为空',
number:'请输入金额' ,
min:'不能为负数',
}
},
});
});
</script>
</html>