继承easyui的default验证,自定义验证规则如下:
(function($){
//计算字符串或者汉字的长度 function getByteLength(s){ var len = 0; for(i=0;i<s.length;i++) { var c = s.substr(i,1); var ts = escape(c); if(ts.substring(0,2) == "%u") { len += 2; } else if(ts== "%B7") { len += 2; } else { len += 1; } }//eof:for return len; }; //jquery-easyUI $.extend($.fn.validateBox.defaults.rules,{ //校验字符输入的限制(只能输入数字和字母) lettersandnumericonly:{ validator:function(value,param){ return /^[a-zA-Z0-9]+$/i.test(value); },message:'{0}只能输入数字和字母' },//只能输入数字 numericonly:{ validator:function(value,param){ return /^[0-9]+$/i.test(value); },message:'{0}只能输入数字!' },//只能输入正整数 positiveInteger:{ validator:function(value,param){ return /^[0-9]+$/i.test(value) && parseInt($.trim(value)) > 0; },message:'{0}只能输入正整数!' },//只能输入数字(并且有范围) numericRange:{ validator:function(value,param){ return /^[0-9]+$/i.test(value) && parseInt($.trim(value)) <= param[1]; },message:'{0}只能输入数字,且不能大于{1}' },oneToTwoInteger:{ validator:function(value,param){ return /^[0][[.]\d{1,10}]?$/i.test(value)||/^[1]?$/i.test(value)||/^[0]?$/i.test(value); },message:'{0}只能输入数字,且在0到1之间' },//验证(-20-130)的整数 integerALLKinds : { validator : function(value) { return /^[-|+]?[0-9]+\d*$/i.test(value) && value >= -20 && value <= 130; },message : '请输入-20到130的任意整数' },//判断最长 maxLength:{ validator:function(value,param){ return getByteLength($.trim(value)) <= param[1] ; },message:'{0}长度不能超过{1}个字符或者{2}个汉字' },//判断最小长度 minLength : { validator : function(value,param) { var len = $.trim(value).length; return len >= param[0]; },message :'{0}长度最小{1}个字符' },//判断长度范围 length:{validator:function(value,param){ var len=$.trim(value).length; return len>=param[0]&&len<=param[1]; },message:"{0}内容长度介于{1}和{2}之间." },//验证年龄 age:{ validator : function(value) { return /^[0-9]+$/i.test(value) && parseInt($.trim(value)) >= 0 && value>=0 && value <=150; },message:'年龄格式不对,请输出0-150之间的数字.' },//验证电话号码 phone : { validator : function(value) { return /^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/i.test(value); },message : '格式不正确,请使用下面格式:020-88888888' },//验证手机号码 mobile : { validator : function(value) { return /^(13|15|18)\d{9}$/i.test(value); },message : '手机号码格式不正确(正确格式如:13/15/18*********)' },//验证手机或电话 phoneOrMobile:{ validator : function(value) { return /^(13|14|15|17|18)\d{9}$/i.test(value) || /^((\(\d{2,4})?$/i.test(value) || /^\d{8}$/i.test(value); },message:'请填入手机或电话号码,如13/14/15/17/18*********或020-8888888或88888888' },//验证身份证 idcard : { validator : function(value) { return /^\d{15}(\d{2}[A-Za-z0-9])?$/i.test(value); },message : '身份证号码格式不正确' },//验证是否为小数或整数 floatOrInt : { validator : function(value) { return /^(\d{1,3}(,\d\d\d)*(\.\d{1,\d\d\d)*)?|\d+(\.\d+))?$/i.test(value); },message : '请输入数字,并保证格式正确' },IntegerOrFloat:{ validator:function(value){ return /^[0-9]+(\.[0-9]+)?$/i.test(value) ; },message : '请输入数值型数据' },//验证货币 currency : { validator : function(value) { return /^d{0,}(\.\d+)?$/i.test(value); },message : '货币格式不正确' },//验证整数 integer : { validator : function(value) { return /^[+]?[1-9]+\d*$/i.test(value); },message : '请输入整数' },//验证中文 chinese : { validator : function(value) { return /^[\u0391-\uFFE5]+$/i.test(value); },message : '请输入中文' },//验证英语 english : { validator : function(value) { return /^[A-Za-z]+$/i.test(value); },message : '请输入英文' },//验证是否包含空格和非法字符 unnormal : { validator : function(value) { return /.+/i.test(value); },message : '输入值不能为空和包含其他非法字符' },//验证邮政编码 zip : { validator : function(value) { return /^[1-9]\d{5}$/i.test(value); },message : '邮政编码格式不正确' },//验证IP地址 ip : { validator : function(value) { return /d+.d+.d+.d+/i.test(value); },message : 'IP地址格式不正确' },//email校验 email:{ validator : function(value){ return /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/.test(value); },message : '请输入有效的电子邮件账号(例:abc@126.com)' },//校验值是否存在 param[0]: table,param[1]: colum,param[2]: add和修改区分,param[3]:修改前的value valueExists:{ validator : function(value,param){ var bool = true; var flag = 0; if(param[2]){ if(param[2]=='edit'){ if(value == param[3]){ flag = 1 ; } } } if(flag == 0){ //校验编号是否存在 $.ajax({ url:"url ?table="+param[0]+"&colum="+param[1]+"&value="+value,type:'post',async:false,dataType:'json',success:function(result){ var result = eval(result); if(result.flag == 0){ bool = true ; }else{ bool = false; } } }); } return bool; },message : '当前资源已被占用' } });
})(jQuery)
以上为例子,根据项目需要修改。
1、jsp代码
2、js代码$('#btn_save').bind('click',function(){ if(($("#gfxwjForm").form('validate'))) { saveCommonWin(); } });
3、java代码 略