EasyUI——validatebox扩展

利用正则表达式扩展更多表单验证


js代码:

<script type="text/javascript">
	$(function(){
		//验证中文
		$.extend($.fn.validatebox.defaults.rules,{
			chs:{
				validator:function(value,param){
					var reg = /^[\u2E80-\u9FFF]+$/;
					return reg.test(value);
				},
				message:"只能输入中文"
			}
		});
		//中文,字母,数字,下划线及中文符号
		$.extend($.fn.validatebox.defaults.rules,{
			stringCheck:{
				validator:function(value,param){
					var reg = /^[\u0391-\uFFE5\w]+$/;
					return reg.test(value);
				},
				message:"只能输入中文字母数字下划线"
			}
		});
		//手机号码验证
		$.extend($.fn.validatebox.defaults.rules,{
			mobile:{
				validator:function(value,param){
					var reg = /^(((13[0-9]{1})|(14[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+\d{8})$/;
					return value.length==11 && reg.test(value);
				},
				message:"请正确输入手机号码"
			}
		});
		//验证身份证号码简单正则
		$.extend($.fn.validatebox.defaults.rules,{
			idCard:{
				validator:function(value,param){
					var reg = /^\d{15}(\d{2}[A-Za-z0-9])?$/i;
					return reg.test(value);
				},
				message:"请正确输入身份证号码"
			}
		});
		//验证身份证号码完整
		$.extend($.fn.validatebox.defaults.rules,{
			idCardNo:{
				validator:function(value,param){
					return isIdCardNo(value);
				},
				message:"请正确输入身份证号码"
			}
		});
		
		//身份证号码是否有效
		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 error;
		    var varArray = new Array();
		    var intValue;
		    var lngProduct = 0;
		    var intCheckDigit;
		    var intStrLen = num.length;		//身份证号码长度
		    var idNumber = num;    
		    if ((intStrLen != 15) && (intStrLen != 18)) {
		        //error = "输入身份证号码长度不对!";
		        return false;
		    }    
		    for(i=0;i<intStrLen;i++) {
		        varArray[i] = idNumber.charAt(i);
		        if ((varArray[i] < '0' || varArray[i] > '9') && (i != 17)) {
		            //error = "错误的身份证号码!.";
		            return false;
		        } else if (i < 17) {
		            varArray[i] = varArray[i]*factorArr[i];
		        }
		    }
		    if (intStrLen == 18) {
		    	//验证日期是否有效
		        var date8 = idNumber.substring(6,14);
		        if (isDate8(date8) == false) {
		            //error = "身份证中日期信息不正确!.";
		            return false;
		        }        
		        for(i=0;i<17;i++) {
		            lngProduct = lngProduct + varArray[i];
		        }        
		        intCheckDigit = 12 - lngProduct % 11;
		        switch (intCheckDigit) {
		            case 10:
		                intCheckDigit = 'X';
		                break;
		            case 11:
		                intCheckDigit = 0;
		                break;
		            case 12:
		                intCheckDigit = 1;
		                break;
		        }        
		        if (varArray[17].toUpperCase() != intCheckDigit) {
		           // error = "身份证效验位错误!...正确为: " + intCheckDigit + ".";
		            return false;
		        }
		    } else{ 
		        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
		}
			
		//判断是否为“YYYYMMDD”式的时期
		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
		}
	});
</script>


jsp页面:

<body>
	<div>
		<table>
			<tr>
				<td>验证中文:</td>
				<td><input type="text" id="chs" class="easyui-validatebox"
					data-options="validType:'chs'"></td>
			</tr>
			<tr>
				<td>验证中文,字母,数字,下划线及中文符号:</td>
				<td><input type="text" id="cstringCheck"
					class="easyui-validatebox" data-options="validType:'stringCheck'"></td>
			</tr>
			<tr>
				<td>手机:</td>
				<td><input type="text" id="mobile" class="easyui-validatebox"
					data-options="validType:'mobile'"></td>
			</tr>
			<tr>
				<td>身份证号码(简单正则):</td>
				<td><input type="text" id="idCard" class="easyui-validatebox"
					data-options="validType:'idCard'"></td>
			</tr>
			<tr>
				<td>身份证号码(完整):</td>
				<td><input type="text" id="idCardNo" class="easyui-validatebox"
					data-options="validType:'idCardNo'"></td>
			</tr>
		</table>
	</div>
</body>


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值