real.js 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. function IdentityCodeValid(code) {
  2. // var city = {
  3. // 11: "北京",
  4. // 12: "天津",
  5. // 13: "河北",
  6. // 14: "山西",
  7. // 15: "内蒙古",
  8. // 21: "辽宁",
  9. // 22: "吉林",
  10. // 23: "黑龙江 ",
  11. // 31: "上海",
  12. // 32: "江苏",
  13. // 33: "浙江",
  14. // 34: "安徽",
  15. // 35: "福建",
  16. // 36: "江西",
  17. // 37: "山东",
  18. // 41: "河南",
  19. // 42: "湖北 ",
  20. // 43: "湖南",
  21. // 44: "广东",
  22. // 45: "广西",
  23. // 46: "海南",
  24. // 50: "重庆",
  25. // 51: "四川",
  26. // 52: "贵州",
  27. // 53: "云南",
  28. // 54: "西藏 ",
  29. // 61: "陕西",
  30. // 62: "甘肃",
  31. // 63: "青海",
  32. // 64: "宁夏",
  33. // 65: "新疆",
  34. // 71: "台湾",
  35. // 81: "香港",
  36. // 82: "澳门",
  37. // 91: "国外"
  38. // };
  39. // var tip = "ok";
  40. // var pass = true;
  41. // if (!code || !/^\d{6}(18|19|20)?\d{2}(0[1-9]|1[12])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$/i.test(code)) {
  42. // tip = "身份证号格式错误";
  43. // pass = false;
  44. // } else if (!city[code.substr(0, 2)]) {
  45. // tip = "身份地址编码错误";
  46. // pass = false;
  47. // } else {
  48. // //18位身份证需要验证最后一位校验位
  49. // if (code.length == 18) {
  50. // code = code.split('');
  51. // //∑(ai×Wi)(mod 11)
  52. // //加权因子
  53. // var factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
  54. // //校验位
  55. // var parity = [1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2];
  56. // var sum = 0;
  57. // var ai = 0;
  58. // var wi = 0;
  59. // for (var i = 0; i < 17; i++) {
  60. // ai = code[i];
  61. // wi = factor[i];
  62. // sum += ai * wi;
  63. // }
  64. // var last = parity[sum % 11];
  65. // if (parity[sum % 11] != code[17]) {
  66. // tip = "校验位错误";
  67. // pass = false;
  68. // }
  69. // }
  70. // }
  71. // if (!pass)
  72. // console.log(tip)
  73. let idcardTest = /^\d{6}((((((19|20)\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|(((19|20)\d{2})(0[13578]|1[02])31)|((19|20)\d{2})02(0[1-9]|1\d|2[0-8])|((((19|20)([13579][26]|[2468][048]|0[48]))|(2000))0229))\d{3})|((((\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|((\d{2})(0[13578]|1[02])31)|((\d{2})02(0[1-9]|1\d|2[0-8]))|(([13579][26]|[2468][048]|0[048])0229))\d{2}))(\d|X|x)$/
  74. if (!idcardTest.test(code)) {
  75. return false;
  76. } else {
  77. return true;
  78. }
  79. }
  80. //手机号校验
  81. function isPoneAvailable(poneInput) {
  82. var myreg = /^[1][3-9][0-9]{9}$/;
  83. if (!myreg.test(poneInput)) {
  84. return false;
  85. } else {
  86. return true;
  87. }
  88. }
  89. //生日
  90. function getBirthdatByIdNo(iIdNo) {
  91. var tmpStr = "";
  92. iIdNo = iIdNo.replace(/^\s+|\s+$/g, "");
  93. if (iIdNo.length == 15) {
  94. tmpStr = iIdNo.substring(6, 12);
  95. tmpStr = "19" + tmpStr;
  96. tmpStr = tmpStr.substring(0, 4) + "/" + tmpStr.substring(4, 6) + "/" + tmpStr.substring(6)
  97. } else {
  98. tmpStr = iIdNo.substring(6, 14);
  99. tmpStr = tmpStr.substring(0, 4) + "/" + tmpStr.substring(4, 6) + "/" + tmpStr.substring(6)
  100. }
  101. return tmpStr;
  102. }
  103. function getSex(idcard) {
  104. let sex = ''
  105. if (parseInt(idcard.substr(16, 1)) % 2 == 1) {
  106. sex = '男'
  107. } else {
  108. sex = '女'
  109. }
  110. return sex
  111. }
  112. function authCode(str){
  113. let length = str.replace(/\s/g,"").length
  114. return length
  115. }
  116. module.exports = {
  117. IdentityCodeValid,
  118. isPoneAvailable,
  119. getBirthdatByIdNo,
  120. getSex,
  121. authCode
  122. }