继承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,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,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,3}(,\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代码
<form id="gfxwjForm" name="gfxwjForm" action="" method="post" enctype="multipart/form-data"> <div class="win_body_cln_1"> 名 称:<input class="easyui-textbox" id="txt_mc" name="txt_mc" data-options="required:true" missingMessage="不能为空!" style="height:30px" value="${zywsptGfxwjb.mc}"> </div>
<input type="button" class="button" id="btn_save" value="保存"/> </form> 2、js代码
$('#btn_save').bind('click', function(){ if(($("#gfxwjForm").form('validate'))) { saveCommonWin(); } });
3、java代码 略