Non puoi selezionare più di 25 argomenti Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.
 
 
 
 
 
 

221 righe
12 KiB

  1. /*
  2. * 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园(http://www.learun.cn)
  3. * Copyright (c) 2013-2018 北京泉江科技有限公司
  4. * 创建人:陈彬彬
  5. * 日 期:2017.03.16
  6. * 描 述:数据验证完整性
  7. */
  8. (function ($, learun) {
  9. "use strict";
  10. // 数据验证方法
  11. learun.validator = {
  12. validReg: function (obj, reg, msg) {
  13. var res = { code: true, msg: '' };
  14. if (!reg.test(obj)) {
  15. res.code = false;
  16. res.msg = msg;
  17. }
  18. return res;
  19. },
  20. validRegOrNull: function (obj, reg, msg) {
  21. var res = { code: true, msg: '' };
  22. if (obj == null || obj == undefined || obj.length == 0) {
  23. return res;
  24. }
  25. if (!reg.test(obj)) {
  26. res.code = false;
  27. res.msg = msg;
  28. }
  29. return res;
  30. },
  31. isNotNull: function (obj) {// 验证不为空
  32. var res = { code: true, msg: '' };
  33. obj = $.trim(obj);
  34. if (obj == null || obj == undefined || obj.length == 0) {
  35. res.code = false;
  36. res.msg = '不能为空';
  37. }
  38. return res;
  39. },
  40. isBankCard: function (obj) {//验证银行卡的长度
  41. var res = { code: true, msg: '' };
  42. obj = $.trim(obj);
  43. if (obj.length >= 20 || obj.length < 16) {
  44. res.code = false;
  45. res.msg = '输入错误,请核对银行卡账号';
  46. }
  47. return res;
  48. },
  49. isNum: function (obj) {// 验证数字
  50. return learun.validator.validReg(obj, /^[-+]?\d+$/, '必须为数字');
  51. },
  52. isPositiveInteger: function (obj) {// 正整数
  53. return learun.validator.validReg(obj, /^[1-9]\d*$/, '必须为正整数');
  54. },
  55. isPositiveFloatintZero: function (obj) {// 整数或小数(不能为负数)
  56. return learun.validator.validReg(obj, /^(0|[1-9]\d*|(0|[1-9]\d*)\.\d*[1-9])$/, '必须为整数或小数(不能为负数)');
  57. },
  58. isPositiveFloatint: function (obj) {// 整数或小数(不能为零和负数)
  59. return learun.validator.validReg(obj, /^([1-9]\d*|(0|[1-9]\d*)\.\d*[1-9])$/, '请输入正确的整数或小数(不能为零和负数)');
  60. },
  61. isNumOrNull: function (obj) {// 验证数字 或者空
  62. return learun.validator.validRegOrNull(obj, /^[-+]?\d+$/, '数字或空');
  63. },
  64. isEmail: function (obj) {//Email验证 email
  65. return learun.validator.validReg(obj, /^\w{3,}@\w+(\.\w+)+$/, '必须为E-mail格式');
  66. },
  67. isEmailOrNull: function (obj) {//Email验证 email 或者null,空
  68. return learun.validator.validRegOrNull(obj, /^\w{3,}@\w+(\.\w+)+$/, '必须为E-mail格式或空');
  69. },
  70. isEnglishStr: function (obj) {//验证只能输入英文字符串 echar
  71. return learun.validator.validReg(obj, /^[a-z,A-Z]+$/, '必须为英文字符串');
  72. },
  73. isEnglishStrOrNull: function (obj) {//验证只能输入英文字符串 echar 或者null,空
  74. return learun.validator.validRegOrNull(obj, /^[a-z,A-Z]+$/, '必须为英文字符串或空');
  75. },
  76. isTelephone: function (obj) { //验证是否电话号码 phone
  77. return learun.validator.validReg(obj, /^(\d{3,4}\-)?[1-9]\d{6,7}$/, '必须为电话格式');
  78. },
  79. isTelephoneOrNull: function (obj) {//验证是否电话号码 phone或者null,空
  80. return learun.validator.validRegOrNull(obj, /^(\d{3,4}\-)?[1-9]\d{6,7}$/, '必须为电话格式或空');
  81. },
  82. isMobile: function (obj) {//验证是否手机号 mobile
  83. return learun.validator.validReg(obj, /^(\+\d{2,3}\-)?\d{11}$/, '必须为手机格式');
  84. },
  85. isMobileOrnull: function (obj) {//验证是否手机号 mobile或者null,空
  86. return learun.validator.validRegOrNull(obj, /^(\+\d{2,3}\-)?\d{11}$/, '必须为手机格式或空');
  87. },
  88. isMobileOrPhone: function (obj) {//验证是否手机号或电话号码 mobile phone
  89. var res = { code: true, msg: '' };
  90. if (!learun.validator.isTelephone(obj).code && !learun.validator.isMobile(obj).code) {
  91. res.code = false;
  92. res.msg = '为电话格式或手机格式';
  93. }
  94. return res;
  95. },
  96. isMobileOrPhoneOrNull: function (obj) {//验证是否手机号或电话号码 mobile phone或者null,空
  97. var res = { code: true, msg: '' };
  98. if (learun.validator.isNotNull(obj).code && !learun.validator.isTelephone(obj).code && !learun.validator.isMobile(obj).code) {
  99. res.code = false;
  100. res.msg = '为电话格式或手机格式或空';
  101. }
  102. return res;
  103. },
  104. isUri: function (obj) {//验证网址 uri
  105. return learun.validator.validReg(obj, /^http:\/\/[a-zA-Z0-9]+\.[a-zA-Z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/, '必须为网址格式');
  106. },
  107. isUriOrNull: function (obj) {//验证网址 uri或者null,空
  108. return learun.validator.validRegOrNull(obj, /^http:\/\/[a-zA-Z0-9]+\.[a-zA-Z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/, '必须为网址格式或空');
  109. },
  110. isDate: function (obj) {//判断日期类型是否为YYYY-MM-DD格式的类型 date
  111. return learun.validator.validReg(obj, /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/, '必须为日期格式');
  112. },
  113. isDateOrNull: function (obj) {//判断日期类型是否为YYYY-MM-DD格式的类型 date或者null,空
  114. return learun.validator.validRegOrNull(obj, /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/, '必须为日期格式或空');
  115. },
  116. isDateTime: function (obj) {//判断日期类型是否为YYYY-MM-DD hh:mm:ss格式的类型 datetime
  117. return learun.validator.validReg(obj, /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/, '必须为日期时间格式');
  118. },
  119. isDateTimeOrNull: function (obj) {//判断日期类型是否为YYYY-MM-DD hh:mm:ss格式的类型 datetime或者null,空
  120. return learun.validator.validRegOrNull(obj, /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/, '必须为日期时间格式');
  121. },
  122. isTime: function (obj) {//判断日期类型是否为hh:mm:ss格式的类型 time
  123. return learun.validator.validReg(obj, /^((20|21|22|23|[0-1]\d)\:[0-5][0-9])(\:[0-5][0-9])?$/, '必须为时间格式');
  124. },
  125. isTimeOrNull: function (obj) {//判断日期类型是否为hh:mm:ss格式的类型 time或者null,空
  126. return learun.validator.validRegOrNull(obj, /^((20|21|22|23|[0-1]\d)\:[0-5][0-9])(\:[0-5][0-9])?$/, '必须为时间格式或空');
  127. },
  128. isChinese: function (obj) {//判断输入的字符是否为中文 cchar
  129. return learun.validator.validReg(obj, /^[\u0391-\uFFE5]+$/, '必须为中文');
  130. },
  131. isChineseOrNull: function (obj) {//判断输入的字符是否为中文 cchar或者null,空
  132. return learun.validator.validRegOrNull(obj, /^[\u0391-\uFFE5]+$/, '必须为中文或空');
  133. },
  134. isZip: function (obj) {//判断输入的邮编(只能为六位)是否正确 zip
  135. return learun.validator.validReg(obj, /^\d{6}$/, '必须为邮编格式');
  136. },
  137. isZipOrNull: function (obj) {//判断输入的邮编(只能为六位)是否正确 zip或者null,空
  138. return learun.validator.validRegOrNull(obj, /^\d{6}$/, '必须为邮编格式或空');
  139. },
  140. isDouble: function (obj) {//判断输入的字符是否为双精度 double
  141. return learun.validator.validReg(obj, /^[-\+]?\d+(\.\d+)?$/, '必须为小数');
  142. },
  143. isDoubleOrNull: function (obj) {//判断输入的字符是否为双精度 double或者null,空
  144. return learun.validator.validRegOrNull(obj, /^[-\+]?\d+(\.\d+)?$/, '必须为小数或空');
  145. },
  146. isIDCard: function (obj) {//判断是否为身份证 idcard
  147. return learun.validator.validReg(obj, /^\d{15}(\d{2}[A-Za-z0-9;])?$/, '必须为身份证格式');
  148. },
  149. isIDCardOrNull: function (obj) {//判断是否为身份证 idcard或者null,空
  150. return learun.validator.validRegOrNull(obj, /^\d{15}(\d{2}[A-Za-z0-9;])?$/, '必须为身份证格式或空');
  151. },
  152. isStrongPwd: function (obj) {//判断是否为数字、大小写字母、特殊字符组成的密码
  153. return learun.validator.validReg(obj, /^(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*,\.])[0-9a-zA-Z!@#$%^&*,\.]{8,20}$/, '8-20位必须同时包含大小写字母、数字、特殊符号');
  154. },
  155. isStrongPwdOrNull: function (obj) {//判断是否为数字、大小写字母、特殊字符组成的密码或者null,空
  156. return learun.validator.validRegOrNull(obj, /^(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*,\.])[0-9a-zA-Z!@#$%^&*,\.]{8,20}$/, '8-20位必须同时包含大小写字母、数字、特殊符号或空');
  157. },
  158. isIP: function (obj) {//判断是否为IP地址格式
  159. var res = { code: true, msg: '' };
  160. var reg = /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/g //匹配IP地址的正则表达式
  161. var flag = false;
  162. if (reg.test(obj)) {
  163. if (RegExp.$1 < 256 && RegExp.$2 < 256 && RegExp.$3 < 256 && RegExp.$4 < 256) { flag = true };
  164. }
  165. if (!flag) {
  166. res.code = false;
  167. res.msg = '必须为IP格式';
  168. }
  169. return res;
  170. },
  171. isIPOrNull: function (obj) {//判断是否为IP地址格式 或者null,空
  172. var res = { code: true, msg: '' };
  173. if (learun.validator.isNotNull(obj) && !learun.validator.isIP(obj).code) {
  174. res.code = false;
  175. res.msg = '必须为IP格式或空';
  176. }
  177. return res;
  178. },
  179. isLenNum: function (obj, n) {//验证是否是n位数字字符串编号 nnum
  180. var res = { code: true, msg: '' };
  181. var reg = /^[0-9]+$/;
  182. obj = $.trim(obj);
  183. if (obj.length > n || !reg.test(obj)) {
  184. res.code = false;
  185. res.msg = '必须为' + n + '位数字';
  186. }
  187. return res;
  188. },
  189. isLenNumOrNull: function (obj, n) {//验证是否是n位数字字符串编号 nnum或者null,空
  190. var res = { code: true, msg: '' };
  191. if (learun.validator.isNotNull(obj).code && !learun.validator.isLenNum(obj)) {
  192. res.code = false;
  193. res.msg = '必须为' + n + '位数字或空';
  194. }
  195. return res;
  196. },
  197. isLenStr: function (obj, n) {//验证是否小于等于n位数的字符串 nchar
  198. var res = { code: true, msg: '' };
  199. obj = $.trim(obj);
  200. if (!learun.validator.isNotNull(obj).code || obj.length > n) {
  201. res.code = false;
  202. res.msg = '必须小于等于' + n + '位字符';
  203. }
  204. return res;
  205. },
  206. isLenStrOrNull: function (obj, n) {//验证是否小于等于n位数的字符串 nchar或者null,空
  207. var res = { code: true, msg: '' };
  208. obj = $.trim(obj);
  209. if (learun.validator.isNotNull(obj).code && obj.length > n) {
  210. res.code = false;
  211. res.msg = '必须小于等于' + n + '位字符或空';
  212. }
  213. return res;
  214. },
  215. };
  216. })(window.jQuery, top.learun);