yvanui.valid.js 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263
  1. /**
  2. * validType扩展验证
  3. * @author luoyifan
  4. * 2018-11-22 17:32:00
  5. */
  6. "use strict";
  7. $.extend($.fn.textbox.defaults.rules, { //正则验证
  8. sChar: {
  9. validator: function (value, param) {
  10. var regEn = /[`~!@#$%^&*+<>?:"{},.\/;'[\]]/im,
  11. regCn = /[·!#¥——:;“”‘、,|《。》?、【】[\]]/im;
  12. if (regEn.test(value) || regCn.test(value)) {
  13. return false;
  14. }
  15. return true;
  16. },
  17. message: "不能包含特殊字符"
  18. },
  19. noCnEn: { //不能输入中文字符
  20. validator: function (value, param) {
  21. return !/[\u4e00-\u9fa5]/g.test(value);
  22. },
  23. message: "不能输入中文字符"
  24. },
  25. isBlank: { //必填项输入空格无效
  26. validator: function (value, param) {
  27. return $.trim(value) != '';
  28. },
  29. message: "不能为空,全空格也不行"
  30. },
  31. numFh: { //不能输入中文字符
  32. validator: function (value, param) {
  33. return /^[\d:,]+$/.test(value);
  34. },
  35. message: "只能输入数字或英文冒号逗号"
  36. },
  37. number: { //验证是否为数字,小数点不能超过1位
  38. validator: function (value, param) {
  39. return /^\d*\.{0,1}\d{0,1}$/.test(value);
  40. },
  41. message: "请输入数字,且小数点后只能为一位"
  42. },
  43. numBigDecimal: { //验证是否为数字,小数点不能超过3位
  44. validator: function (value, param) {
  45. return /^\d{0,7}(\.\d{0,3})?$/g.test(value);
  46. },
  47. message: "只能输入7位整数和3位小数"
  48. },
  49. money: { //验证是否为数字,小数点不能超过2位
  50. validator: function (value, param) {
  51. return /^\d{0,7}(\.\d{0,2})?$/g.test(value);
  52. },
  53. message: "只能输入7位整数和2位小数"
  54. },
  55. moneyBigDecimal: { //验证是否为数字,小数点不能超过2位
  56. validator: function (value, param) {
  57. return /^\d{0,7}(\.\d{0,2})?$/g.test(value);
  58. },
  59. message: "只能输入7位整数和2位小数"
  60. },
  61. moneyBigDecimaZZ: { //验证是否为数字,小数点不能超过2位
  62. validator: function (value, param) {
  63. return /^\d{0,17}(\.\d{0,2})?$/g.test(value);
  64. },
  65. message: "只能输入17位整数和2位小数"
  66. }, moneyBigDecimaUse: { //验证是否为数字,小数点不能超过2位
  67. validator: function (value, param) {
  68. return /^\d{0,5}(\.\d{0,2})?$/g.test(value);
  69. },
  70. message: "只能输入5位整数和2位小数"
  71. },
  72. integer: { //验证是否为整数
  73. validator: function (value, param) {
  74. return /^[0-9]*$/.test(value);
  75. },
  76. message: "请输入正整数"
  77. },
  78. gtZero: {
  79. validator: function (value, param) {
  80. return parseFloat(value) > 0.0;
  81. },
  82. message: "必须大于0"
  83. },
  84. gtZeroCon: {
  85. validator: function (value, param) {
  86. return parseFloat(value) >= 0.0;
  87. },
  88. message: "必须大于等于0"
  89. },
  90. minLength: {
  91. validator: function (value, param) {
  92. return value.length >= param[0];
  93. },
  94. message: '请输入至少(2)个字符.'
  95. },
  96. date: { // 验证日期格式----格式yyyy-MM-dd或yyyy-M-d
  97. validator: function (value) {
  98. return /^(?:(?!0000)[0-9]{4}([-]?)(?:(?:0?[1-9]|1[0-2])\1(?:0?[1-9]|1[0-9]|2[0-8])|(?:0?[13-9]|1[0-2])\1(?:29|30)|(?:0?[13578]|1[02])\1(?:31))|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)([-]?)0?2\2(?:29))$/i.test(value);
  99. },
  100. message: '请输入合适的日期格式'
  101. },
  102. testDate: { //验证起始日期和结束日期对比
  103. validator: function (value, param) {
  104. var d1 = $('' + param[0] + '').datebox('getValue');
  105. return value >= d1;
  106. },
  107. message: '结束时间必须大于或等于开始时间'
  108. },
  109. gteDate: {
  110. validator: function (value, param) {
  111. var d1 = $('' + param[0] + '').datebox('getValue');
  112. return value >= d1;
  113. },
  114. message: '结束时间必须大于或等于开始时间'
  115. },
  116. lteDate: {
  117. validator: function (value, param) {
  118. var d1 = $('' + param[0] + '').datebox('getValue');
  119. return value <= d1;
  120. },
  121. message: '结束时间必须大于或等于开始时间'
  122. },
  123. idcard: { // 验证身份证
  124. validator: function (value) {
  125. return /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/.test(value);
  126. },
  127. message: '身份证号码格式不正确'
  128. },
  129. phone: { // 验证电话号码
  130. validator: function (value) {
  131. return /^(0[0-9]{2,3}\-)?([2-9][0-9]{6,7})+(\-[0-9]{1,4})?$/i.test(value);
  132. },
  133. message: '格式不正确,请使用下面格式:12345678901、1234-12345678-1234'
  134. },
  135. mobile: { // 验证手机号码
  136. validator: function (value) {
  137. return /^1[3456789]\d{9}$/.test(value);
  138. },
  139. message: '手机号码格式不正确'
  140. },
  141. chinese: { // 验证中文
  142. validator: function (value) {
  143. return /^[\Α-\¥]+$/i.test(value);
  144. },
  145. message: '请输入中文'
  146. },
  147. english: { // 验证英语
  148. validator: function (value) {
  149. return /^[A-Za-z]+$/i.test(value);
  150. },
  151. message: '请输入英文'
  152. },
  153. unnormal: { // 验证是否包含空格和非法字符
  154. validator: function (value) {
  155. return /.+/i.test(value);
  156. },
  157. message: '输入值不能为空和包含其他非法字符'
  158. },
  159. age: { // 验证年龄
  160. validator: function (value) {
  161. return /^(?:[1-9][0-9]?|1[01][0-9]|120)$/i
  162. .test(value);
  163. },
  164. message: '年龄必须是0到120之间的整数'
  165. },
  166. zip: { // 验证邮政编码
  167. validator: function (value) {
  168. return /^[1-9]\d{5}$/i.test(value);
  169. },
  170. message: '邮政编码格式不正确'
  171. },
  172. faxno: { // 验证传真
  173. validator: function (value) {
  174. 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);
  175. },
  176. message: '传真号码不正确'
  177. },
  178. same: {
  179. validator: function (value, param) {
  180. if ($("#" + param[0]).val() != "" && value != "") {
  181. return $("#" + param[0]).val() == value;
  182. } else {
  183. return true;
  184. }
  185. },
  186. message: '两次输入的密码不一致!'
  187. },
  188. menuUrl: { // menu Url 格式验证
  189. validator: function (value) {
  190. return /^[A-Za-z0-9_/.]*$/i.test(value);
  191. },
  192. message: '请输入正确url地址'
  193. },
  194. email: {
  195. validator: function (value) {
  196. return /^([a-zA-Z]|[0-9])(\w|\-)+@[a-zA-Z0-9]+\.([a-zA-Z]{2,4})$/.test(value);
  197. },
  198. message: '请输入正确的邮箱地址'
  199. },
  200. phoneNum: { //验证手机号
  201. validator: function (value, param) {
  202. return /^1[3456789]\d{9}$/.test(value);
  203. },
  204. message: '请输入正确的手机号码。'
  205. },
  206. comboValidate: {
  207. validator: function (value) {
  208. var c = $(this).parent().prev();
  209. var opts = c.combobox('options');
  210. var data = c.combobox('getData');
  211. for (var i = 0; i < data.length; i++) {
  212. if (value === data[i][opts.textField]) {
  213. return true;
  214. }
  215. }
  216. return false;
  217. },
  218. message: '请从下拉框中选择一项'
  219. },
  220. dateValidate: { //验证日期
  221. validator: function (value, param) {
  222. return /^((?:19|20)\d\d)-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])$/.test(value);
  223. },
  224. message: '请输入正确的日期'
  225. },
  226. telNum: { //既验证手机号,又验证座机号
  227. validator: function (value, param) {
  228. return /(^(0[0-9]{2,3}\-)?([2-9][0-9]{6,7})+(\-[0-9]{1,4})?$)|(^((\(\d{3}\))|(\d{3}\-))?(1[3456789]\d{9})$)|(^(400)-(\d{3})-(\d{4})(.)(\d{1,4})$)|(^(400)-(\d{3})-(\d{4}$))/.test(value);
  229. },
  230. message: '请输入正确的电话号码。'
  231. },
  232. startTime: {
  233. validator: function (value, param) {
  234. var d1 = $.fn.datebox.defaults.parser(param[0]);
  235. var d2 = value;
  236. d1 = new Date(d1).Format("yyyy-MM-dd");
  237. return d2 <= d1;
  238. },
  239. message: '开始日期不能大于结束日期!'
  240. },
  241. endTime: {
  242. validator: function (value, param) {
  243. var d1 = $.fn.datebox.defaults.parser(param[0]);
  244. var d2 = value;
  245. d1 = new Date(d1).Format("yyyy-MM-dd");
  246. return d2 >= d1;
  247. },
  248. message: '结束日期不能小于开始日期!'
  249. },
  250. gtZeroNotZ: {
  251. validator: function (value, param) {
  252. return (parseFloat(value) >= 0.0 && /^[0-9]*$/.test(value));
  253. },
  254. message: "非负正整数"
  255. },
  256. });