jquery.validate.ext.js 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. //正则表达式
  2. jQuery.validator.addMethod("regex",
  3. function(value, element, params) {
  4. var exp = new RegExp(params);
  5. return exp.test(value);
  6. },
  7. "格式错误");
  8. jQuery.validator.addMethod("date", function(value, element){
  9. var datetype = element.getAttribute('datetype');
  10. if(datetype=='datetime')
  11. {
  12. ereg = /^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-)) (20|21|22|23|[0-1]?\d):[0-5]?\d:[0-5]?\d$/;
  13. }
  14. else
  15. {
  16. ereg = /^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$/;
  17. }
  18. result = (!ereg.exec(value))? false :true;
  19. return this.optional(element) || (result);
  20. }, "请输入正确的日期");
  21. //手机格式
  22. jQuery.validator.addMethod("mobile", function(value, element) {
  23. var length = value.length;
  24. var mobile = /^(((1[3456789][0-9]{1})|(15[0-9]{1}))+\d{8})$/
  25. return this.optional(element) || (length == 11 && mobile.test(value));
  26. }, "手机号码格式错误");
  27. //电话号码验证
  28. jQuery.validator.addMethod("phone", function(value, element) {
  29. var tel = /^(0[0-9]{2,3}\-)?([2-9][0-9]{6,7})+(\-[0-9]{1,4})?$/;
  30. return this.optional(element) || (tel.test(value));
  31. }, "电话号码格式错误");
  32. // 邮政编码验证
  33. jQuery.validator.addMethod("zipCode", function(value, element) {
  34. var tel = /^[0-9]{6}$/;
  35. return this.optional(element) || (tel.test(value));
  36. }, "邮政编码格式错误");
  37. // QQ号码验证
  38. jQuery.validator.addMethod("qq", function(value, element) {
  39. var tel = /^[1-9]\d{4,9}$/;
  40. return this.optional(element) || (tel.test(value));
  41. }, "qq号码格式错误");
  42. // IP地址验证
  43. jQuery.validator.addMethod("ip", function(value, element) {
  44. var ip = /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;
  45. return this.optional(element) || (ip.test(value) && (RegExp.$1 < 256 && RegExp.$2 < 256 && RegExp.$3 < 256 && RegExp.$4 < 256));
  46. }, "Ip地址格式错误");
  47. // 字母和数字的验证
  48. jQuery.validator.addMethod("chrnum", function(value, element) {
  49. var chrnum = /^([a-zA-Z0-9]+)$/;
  50. return this.optional(element) || (chrnum.test(value));
  51. }, "只能输入数字和字母(字符A-Z, a-z, 0-9)");
  52. // 中文的验证
  53. jQuery.validator.addMethod("chinese", function(value, element) {
  54. var chinese = /^[\u4e00-\u9fa5]+$/;
  55. return this.optional(element) || (chinese.test(value));
  56. }, "只能输入中文");
  57. //一组数字之和下限
  58. jQuery.validator.addMethod("digitsSum", function(value, element) {
  59. var sumRes = 0;
  60. var idx=0;
  61. $("input[name='"+element.name+"']").each(function(){
  62. idx++;
  63. $("label[for='"+element.name+idx+"']").remove();
  64. var obj=$(this);
  65. var v = obj.val();
  66. if(v!='')
  67. {
  68. sumRes += parseInt(obj.val());
  69. }
  70. });
  71. var result = sumRes<=100?true:false;
  72. return this.optional(element) || (result);
  73. }, "它们之和必需小于等于100");