jquery validate验证

常用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>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值