選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。
 
 
 
 
 
 

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