verify.js 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. function checkPassword(string){
  2. //密码组合规则-6-16位数字和字符组合,不能纯数字、纯英文
  3. // var filter = /^(?=.*[0-9\!@#\$%\^&\*])(?=.*[a-zA-Z]).{6,16}$/;
  4. //不限制特殊字符种类 /^(?![\d]+$)(?![a-zA-Z]+$)(?![^\da-zA-Z]+$).{6,18}$/
  5. // 6-18位字符,数字、字母、特殊字符-=_+,. ,必须两种及以上组合
  6. var filter = /^(?![\d]+$)(?![a-zA-Z]+$)(?![-=+_.,]+$)[\da-zA-Z-=+_.,]{6,16}$/;
  7. if (string == undefined) {
  8. return false;
  9. } else if (!filter.test(string)) {
  10. return false;
  11. } else {
  12. return true;
  13. }
  14. }
  15. function checkEMail(string) {
  16. var myreg = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;
  17. if (string == undefined) {
  18. return false;
  19. } else if (!myreg.test(string)) {
  20. return false;
  21. } else {
  22. return true;
  23. }
  24. }
  25. function checkPhone(string) {
  26. // var myreg = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1})|(17[0-9]{1}))+\d{8})$/;
  27. var myreg = /^(13[0-9]|14[5-9]|15[012356789]|166|17[0-8]|18[0-9]|19[8-9])[0-9]{8}$/;
  28. if (string == undefined) {
  29. return false;
  30. } else if (string.length < 11) {
  31. return false;
  32. } else if (!myreg.test(string)) {
  33. return false;
  34. } else {
  35. return true;
  36. }
  37. }
  38. function checkRequired(string) {
  39. if (string == undefined || string == '') {
  40. return false;
  41. } else {
  42. return true;
  43. }
  44. }
  45. function checkLength(num, length) {
  46. if (num < length) {
  47. return false;
  48. } else {
  49. return true;
  50. }
  51. }
  52. function checkCardId(string) {
  53. var code = string;
  54. var city = {
  55. 11: "北京",
  56. 12: "天津",
  57. 13: "河北",
  58. 14: "山西",
  59. 15: "内蒙古",
  60. 21: "辽宁",
  61. 22: "吉林",
  62. 23: "黑龙江 ",
  63. 31: "上海",
  64. 32: "江苏",
  65. 33: "浙江",
  66. 34: "安徽",
  67. 35: "福建",
  68. 36: "江西",
  69. 37: "山东",
  70. 41: "河南",
  71. 42: "湖北 ",
  72. 43: "湖南",
  73. 44: "广东",
  74. 45: "广西",
  75. 46: "海南",
  76. 50: "重庆",
  77. 51: "四川",
  78. 52: "贵州",
  79. 53: "云南",
  80. 54: "西藏 ",
  81. 61: "陕西",
  82. 62: "甘肃",
  83. 63: "青海",
  84. 64: "宁夏",
  85. 65: "新疆",
  86. 71: "台湾",
  87. 81: "香港",
  88. 82: "澳门",
  89. 91: "国外 "
  90. };
  91. var tip = "";
  92. var pass = true;
  93. var reg = /^\d{6}(18|19|20)?\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$/;
  94. if (!code || !code.match(reg)) {
  95. tip = "身份证号格式错误";
  96. pass = false;
  97. } else if (!city[code.substr(0, 2)]) {
  98. tip = "地址编码错误";
  99. pass = false;
  100. } else {
  101. //18位身份证需要验证最后一位校验位
  102. if (code.length == 18) {
  103. code = code.split('');
  104. //∑(ai×Wi)(mod 11)
  105. //加权因子
  106. var factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
  107. //校验位
  108. var parity = [1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2];
  109. var sum = 0;
  110. var ai = 0;
  111. var wi = 0;
  112. for (var i = 0; i < 17; i++) {
  113. ai = code[i];
  114. wi = factor[i];
  115. sum += ai * wi;
  116. }
  117. var last = parity[sum % 11];
  118. if (parity[sum % 11] != code[17]) {
  119. tip = "校验位错误";
  120. pass = false;
  121. }
  122. }
  123. }
  124. console.log(pass)
  125. if (pass) {
  126. return true
  127. }
  128. if (!pass) return false;
  129. }
  130. export default {
  131. checkPassword,
  132. checkEMail,
  133. checkPhone,
  134. checkRequired,
  135. checkCardId,
  136. checkLength
  137. }