您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

VerifyHelper.ts 2.4KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. import { message } from "antd";
  2. export const verifySex = (idCard: string) => {
  3. // 检查身份证号码长度
  4. if (idCard.length === 18) {
  5. // 18位身份证号码
  6. const lastChar = idCard.charAt(17);
  7. let genderCode;
  8. if (lastChar === 'X' || lastChar == "x") {
  9. genderCode = 10; // 将 'X' 转换为数字 10
  10. } else {
  11. genderCode = parseInt(lastChar, 10);
  12. }
  13. return genderCode % 2 === 0 ? '女' : '男';
  14. } else if (idCard.length === 15) {
  15. // 15位身份证号码
  16. const genderCode = parseInt(idCard.substring(13, 15), 10);
  17. return genderCode % 2 === 0 ? '女' : '男';
  18. } else {
  19. return '请输入有效的身份证号码';
  20. }
  21. }
  22. export const verifyIdCard = (idCard: string) => {
  23. let regIdCard =
  24. /^(^[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])$)$/;
  25. if (regIdCard.test(idCard)) {
  26. if (idCard.length == 18) {
  27. let idCardWi = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10,
  28. 5, 8, 4, 2);
  29. let idCardY = new Array(1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2);
  30. let idCardWiSum = 0;
  31. for (let i = 0; i < 17; i++) {
  32. idCardWiSum += idCard.substring(i, i + 1) * idCardWi[i];
  33. }
  34. let idCardMod = idCardWiSum % 11;
  35. let idCardLast = idCard.substring(17);
  36. if (idCardMod == 2) {
  37. if (idCardLast == "X" || idCardLast == "x") {
  38. return true;
  39. } else {
  40. message.error('身份证号码错误');
  41. return false;
  42. }
  43. } else {
  44. if (idCardLast == idCardY[idCardMod]) {
  45. return true;
  46. } else {
  47. message.error('身份证号码错误');
  48. return false;
  49. }
  50. }
  51. } else {
  52. return true;
  53. }
  54. } else {
  55. message.error('请输入有效的身份证号码');
  56. return false;
  57. }
  58. }
  59. export const verifyPhone = (phone: string) => {
  60. let reg_phone = /^(\+)?(0|86|17951)?1(3\d|4[579]|5\d|6\d|7\d|8\d|9\d)\d{8}$/;
  61. if (reg_phone.test(phone)) {
  62. return true;
  63. } else {
  64. message.error('请输入正确的手机号');
  65. return false;
  66. }
  67. }