validate.js 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221
  1. /**
  2. * 验证电话号码(手机号码+电话号码)
  3. *
  4. * @param obj
  5. * @returns {Boolean}
  6. */
  7. function checkPhoneNum(obj) {
  8. if (/^((\d{3}-\d{8}|\d{4}-\d{7,8})|(1[3|5|7|8][0-9]{9}))$/.test(obj)) {
  9. return true;
  10. }
  11. return false;
  12. }
  13. /**
  14. * 验证企业地址(中文、英文、数字)
  15. *
  16. * @param obj
  17. */
  18. function checkAddress(obj) {
  19. if (/^[\u4e00-\u9fa5a-zA-Z]{1,5}[\u4e00-\u9fa5a-zA-Z0-9]{1,25}$/.test(obj)) {
  20. return true;
  21. }
  22. return false;
  23. }
  24. /**
  25. * 验证用户名输入格式
  26. *
  27. * @param obj
  28. * @returns {Boolean}
  29. */
  30. function checkUserName(obj) {
  31. /*
  32. * if (/^([\u4E00-\uFA29]|[\uE7C7-\uE7F3]|[a-zA-Z0-9]){1,30}$/.test(obj)) {
  33. * return true; }
  34. */
  35. var re1 = new RegExp(
  36. "^([\u4E00-\uFA29]|[\uE7C7-\uE7F3]|[a-zA-Z0-9]){1,30}$");
  37. if (re1.test(obj)) {
  38. return true;
  39. } else {
  40. return false;
  41. }
  42. }
  43. /**
  44. * 验证大陆的身份证号 验证身份证号 身份证号码为15位或18位的全数字,或者18位时前17位是数字,最后一位是校验位,可能是数字或字符X或x
  45. *
  46. * @param obj
  47. */
  48. function checkIdCard(obj) {
  49. if (/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(obj)) {
  50. return true;
  51. }
  52. return false;
  53. }
  54. /**
  55. * 验证金额(只能输入数字)
  56. *
  57. * @param obj
  58. * @returns {Boolean}
  59. */
  60. function checkMoney(obj) {
  61. /*
  62. * if (/^([1-9][\d]{0,7}|0)(\.[\d]{1,2})?$/.test(obj)) { return true; }
  63. * return false;
  64. */
  65. // alert(obj);
  66. var reg = new RegExp("^[0-9]*$");
  67. if (reg.test(obj)) {
  68. return true;
  69. }
  70. return false;
  71. }
  72. /**
  73. * 验证电话号码
  74. *
  75. * @param str
  76. * @returns
  77. */
  78. function checkPhone(phone) {
  79. if (phone != "") {
  80. var p1 = /^(([0\+]\d{2,3}-)?(0\d{2,3})-)?(\d{7,8})(-(\d{3,}))?$/;
  81. var me = false;
  82. if (p1.test(phone))
  83. me = true;
  84. if (!me) {
  85. alert('对不起,您输入的电话号码有错误,区号和电话号码之间请用-分割!');
  86. return false;
  87. }
  88. } else {
  89. alert("电话号码不能为空!");
  90. return false;
  91. }
  92. }
  93. /**
  94. * 验证手机
  95. *
  96. * @param mobile
  97. * @returns {Boolean}
  98. */
  99. function checkMoble(mobile) {
  100. if (mobile != "") {
  101. var reg0 = /^13\d{5,9}$/;
  102. var reg1 = /^153\d{4,8}$/;
  103. var reg2 = /^159\d{4,8}$/;
  104. var reg3 = /^0\d{10,11}$/;
  105. var m = false;
  106. if (reg0.test(mobile))
  107. m = true;
  108. if (reg1.test(mobile))
  109. m = true;
  110. if (reg2.test(mobile))
  111. m = true;
  112. if (reg3.test(mobile))
  113. m = true;
  114. if (!m) {
  115. // alert('对不起,您输入的手机号码有误!');
  116. return false;
  117. }
  118. return true;
  119. } else {
  120. // alert("手机号码不能为空!");
  121. return false;
  122. }
  123. }
  124. /**
  125. * 验证银行账号
  126. */
  127. function luhmCheck(bankno) {
  128. var reg = /^\d{19}$/; // 以19位数字开头,以19位数字结尾
  129. if (!reg.test(bankno)) {
  130. // alert("银行账号格式错误,应该是19位数字!");
  131. return false;
  132. }
  133. var lastNum = bankno.substr(bankno.length - 1, 1);// 取出最后一位(与luhm进行比较)
  134. var first15Num = bankno.substr(0, bankno.length - 1);// 前15或18位
  135. var newArr = new Array();
  136. for (var i = first15Num.length - 1; i > -1; i--) { // 前15或18位倒序存进数组
  137. newArr.push(first15Num.substr(i, 1));
  138. }
  139. var arrJiShu = new Array(); // 奇数位*2的积 <9
  140. var arrJiShu2 = new Array(); // 奇数位*2的积 >9
  141. var arrOuShu = new Array(); // 偶数位数组
  142. for (var j = 0; j < newArr.length; j++) {
  143. if ((j + 1) % 2 == 1) {// 奇数位
  144. if (parseInt(newArr[j]) * 2 < 9)
  145. arrJiShu.push(parseInt(newArr[j]) * 2);
  146. else
  147. arrJiShu2.push(parseInt(newArr[j]) * 2);
  148. } else
  149. // 偶数位
  150. arrOuShu.push(newArr[j]);
  151. }
  152. var jishu_child1 = new Array();// 奇数位*2 >9 的分割之后的数组个位数
  153. var jishu_child2 = new Array();// 奇数位*2 >9 的分割之后的数组十位数
  154. for (var h = 0; h < arrJiShu2.length; h++) {
  155. jishu_child1.push(parseInt(arrJiShu2[h]) % 10);
  156. jishu_child2.push(parseInt(arrJiShu2[h]) / 10);
  157. }
  158. var sumJiShu = 0; // 奇数位*2 < 9 的数组之和
  159. var sumOuShu = 0; // 偶数位数组之和
  160. var sumJiShuChild1 = 0; // 奇数位*2 >9 的分割之后的数组个位数之和
  161. var sumJiShuChild2 = 0; // 奇数位*2 >9 的分割之后的数组十位数之和
  162. var sumTotal = 0;
  163. for (var m = 0; m < arrJiShu.length; m++) {
  164. sumJiShu = sumJiShu + parseInt(arrJiShu[m]);
  165. }
  166. for (var n = 0; n < arrOuShu.length; n++) {
  167. sumOuShu = sumOuShu + parseInt(arrOuShu[n]);
  168. }
  169. for (var p = 0; p < jishu_child1.length; p++) {
  170. sumJiShuChild1 = sumJiShuChild1 + parseInt(jishu_child1[p]);
  171. sumJiShuChild2 = sumJiShuChild2 + parseInt(jishu_child2[p]);
  172. }
  173. // 计算总和
  174. sumTotal = parseInt(sumJiShu) + parseInt(sumOuShu)
  175. + parseInt(sumJiShuChild1) + parseInt(sumJiShuChild2);
  176. // 计算Luhm值
  177. var k = parseInt(sumTotal) % 10 == 0 ? 10 : parseInt(sumTotal) % 10;
  178. var luhm = 10 - k;
  179. if (lastNum == luhm) {
  180. return true;
  181. } else {
  182. // alert("您输入的银行卡号不正确!");
  183. return false;
  184. }
  185. }
  186. /**
  187. * 付款备注验证
  188. * @param remark
  189. */
  190. function checkRemark(remark) {
  191. var pattern = new RegExp("[`~!@#$^&*()=|{}':;'\\[\\]<>/?~!@#¥……&*()——|{}【】‘;:”“'、?]")
  192. if (remark != "") {
  193. $.trim(remark);
  194. // if (!/^[\u4e00-\u9fa5_a-zA-Z0-9]+$/.test(remark)) {
  195. if (!/^[A-Za-z0-9_\[\]\【\】\{\}\{\}\(\)\(\)\《\》\<\>\,\,\.\。\、\!\!\~\·\@\#\¥\$\%\^\…\&\—\:\:\;\;\‘\’\'\'\"\"\“\”\?\?\-\=\|\*\+\-\u4e00-\u9fa5]{1,100}$/.test(remark)) {
  196. mui.alert("请务输入特殊字符!");
  197. return;
  198. }
  199. if (!(remark.length >= 0 && remark.length <= 100)) {
  200. mui.alert("备注字数长度在0-100之间!");
  201. return;
  202. }
  203. }
  204. }