各种验证表达式

<script>  
    Validator   =   {  
  Require   :   /.+/,  
  Email   :   /^/w+([-+.]/w+)*@/w+([-.]//w+)*/./w+([-.]/w+)*$/,  
  Phone   :   /^((/(/d{3}/))|(/d{3}/-))?(/(0/d{2,3}/)|0/d{2,3}-)?[1-9]/d{6,7}$/,  
  Mobile   :   /^((/(/d{3}/))|(/d{3}/-))?13/d{9}$/,  
  Url   :   /^http:[A-Za-z0-9]+/.[A-Za-z0-9]+[//=/?%/-&_~`@[/]/':+!]*([^<>/"/"])*$/,  
  IdCard   :   /^/d{15}(/d{2}[A-Za-z0-9])?$/,  
  Currency   :   /^/d+(/./d+)?$/,  
  Number   :   /^/d+$/,  
  Zip   :   /^[1-9]/d{5}$/,  
  QQ   :   /^[1-9]/d{4,8}$/,  
  Integer   :   /^[-/+]?/d+$/,  
  Double   :   /^[-/+]?/d+(/./d+)?$/,  
  English   :   /^[A-Za-z]+$/,  
  Chinese   :     /^[/u0391-/uFFE5]+$/,  
  UnSafe   :   /^(([A-Z]*|[a-z]*|/d*|[-_/~!@#/$%/^&/*/./(/)/[/]/{/}<>/?/'/"]*)|.{0,5})$|/s/,  
  IsSafe   :   function(str){return   !this.UnSafe.test(str);},  
  SafeString   :   "this.IsSafe(value)",  
  Limit   :   "this.limit(value.length,getAttribute('min'),     getAttribute('max'))",  
  LimitB   :   "this.limit(this.LenB(value),   getAttribute('min'),   getAttribute('max'))",  
  Date   :   "this.IsDate(value,   getAttribute('min'),   getAttribute('format'))",  
  Repeat   :   "value   ==   document.getElementsByName(getAttribute('to'))[0].value",  
  Range   :   "getAttribute('min')   <   value   &&   value   <   getAttribute('max')",  
  Compare   :   "this.compare(value,getAttribute('operator'),getAttribute('to'))",  
  Custom   :   "this.Exec(value,   getAttribute('regexp'))",  
  Group   :   "this.MustChecked(getAttribute('name'),   getAttribute('min'),   getAttribute('max'))",  
  ErrorItem   :   [document.forms[0]],  
  ErrorMessage   :   ["
以下原因导致提交失败: /t/t/t/t"],  
  Validate   :   function(theForm,   mode){  
  var   obj   =   theForm   ||   event.srcElement;  
  var   count   =   obj.elements.length;  
  this.ErrorMessage.length   =   1;  
  this.ErrorItem.length   =   1;  
  this.ErrorItem[0]   =   obj;  
  for(var   i=0;i<count;i++){  
  with(obj.elements[i]){  
  var   _dataType   =   getAttribute("dataType");  
  if(typeof(_dataType)   ==   "object"   ||   typeof(this[_dataType])   ==   "undefined")     continue;  
  this.ClearState(obj.elements[i]);  
  if(getAttribute("require")   ==   "false"   &&   value   ==   "")   continue;  
  switch(_dataType){  
  case   "Date"   :  
  case   "Repeat"   :  
  case   "Range"   :  
  case   "Compare"   :  
  case   "Custom"   :  
  case   "Group"   :    
  case   "Limit"   :  
  case   "LimitB"   :  
  case   "SafeString"   :  
  if(!eval(this[_dataType])) {  
  this.AddError(i,   getAttribute("msg"));  
  }  
  break;  
  default   :  
  if(!this[_dataType].test(value)){  
  this.AddError(i,   getAttribute("msg"));  
  }  
  break;  
  }  
  }  
  }  
  if(this.ErrorMessage.length   >   1){  
  mode   =   mode   ||   1;  
  var   errCount   =   this.ErrorItem.length;  
  switch(mode){  
  case   2   :  
  for(var   i=1;i<errCount;i++)  
  this.ErrorItem[i].style.color   =   "red";  
  case   1   :  
  alert(this.ErrorMessage.join("/n"));  
  this.ErrorItem[1].focus();  
  break;  
  case   3   :  
  for(var   i=1;i<errCount;i++){  
  try{  
  var   span   =   document.createElement("SPAN");  
  span.id   =   "__ErrorMessagePanel";  
  span.style.color   =   "red";  
  this.ErrorItem[i].parentNode.appendChild(span);  
  span.innerHTML   =   this.ErrorMessage[i].replace(//d+:/,"*");  
  }  
  catch(e){alert(e.description);}  
  }  
  this.ErrorItem[1].focus();  
  break;  
  default   :  
  alert(this.ErrorMessage.join("/n"));  
  break;  
  }  
  return   false;  
  }  
  return   true;  
  },  
  limit   :   function(len,min,   max){  
  min   =   min   ||   0;  
  max   =   max   ||   Number.MAX_VALUE;  
  return   min   <=   len   &&   len   <=   max;  
  },  
  LenB   :   function(str){  
  return   str.replace(/[^/x00-/xff]/g,"**").length;  
  },  
  ClearState   :   function(elem){  
  with(elem){  
  if(style.color   ==   "red")  
  style.color   =   "";  
  var   lastNode   =   parentNode.childNodes[parentNode.childNodes.length-1];  
  if(lastNode.id   ==   "__ErrorMessagePanel")  
  parentNode.removeChild(lastNode);  
  }  
  },  
  AddError   :   function(index,   str){  
  this.ErrorItem[this.ErrorItem.length]   =   this.ErrorItem[0].elements[index];  
  this.ErrorMessage[this.ErrorMessage.length]   =   this.ErrorMessage.length   +   ":"   +   str;  
  },  
  Exec   :   function(op,   reg){  
  return   new   RegExp(reg,"g").test(op);  
  },  
  compare   :   function(op1,operator,op2){  
  switch   (operator)   {  
  case   "NotEqual":  
  return   (op1   !=   op2);  
  case   "GreaterThan":  
  return   (op1   >   op2);  
  case   "GreaterThanEqual":  
  return   (op1   >=   op2);  
  case   "LessThan":  
  return   (op1   <   op2);  
  case   "LessThanEqual":  
  return   (op1   <=   op2);  
  default:  
  return   (op1   ==   op2);                          
  }  
  },  
  MustChecked   :   function(name,   min,   max){  
  var   groups   =   document.getElementsByName(name);  
  var   hasChecked   =   0;  
  min   =   min   ||   1;  
  max   =   max   ||   groups.length;  
  for(var   i=groups.length-1;i>=0;i--)  
  if(groups[i].checked)   hasChecked++;  
  return   min   <=   hasChecked   &&   hasChecked   <=   max;  
  },  
  IsDate   :   function(op,   formatString){  
  formatString   =   formatString   ||   "ymd";  
  var   m,   year,   month,   day;  
  switch(formatString){  
  case   "ymd"   :  
  m   =   op.match(new   RegExp("^//s*((//d{4})|(//d{2}))([-./])(//d{1,2})//4(//d{1,2})//s*$"));  
  if(m   ==   null   )   return   false;  
  day   =   m[6];  
  month   =   m[5]--;  
  year   =     (m[2].length   ==   4)   ?   m[2]   :   GetFullYear(parseInt(m[3],   10));  
  break;  
  case   "dmy"   :  
  m   =   op.match(new   RegExp("^//s*(//d{1,2})([-./])(//d{1,2})//2((//d{4})|(//d{2}))//s*$"));  
  if(m   ==   null   )   return   false;  
  day   =   m[1];  
  month   =   m[3]--;  
  year   =   (m[5].length   ==   4)   ?   m[5]   :   GetFullYear(parseInt(m[6],   10));  
  break;  
  default   :  
  break;  
  }  
  var   date   =   new   Date(year,   month,   day);  
                  return   (typeof(date)   ==   "object"   &&   year   ==   date.getFullYear()   &&   month   ==   date.getMonth()   &&   day   ==   date.getDate());  
  function   GetFullYear(y){return   ((y<30   ?   "20"   :   "19")   +   y)|0;}  
  }  
    }  
    </script>
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值