当前位置:   article > 正文

vue3 +Element Plus form表单检验身份证、手机号、邮箱_vue3表单校验联系方式

vue3表单校验联系方式

   最近项目中有一个校验身份证号手机号的业务,就简单封装了一下检验

//身份证号

  1. export const validatorIdCard = (rule: any, value: string, callback: (error?: Error) => void) => {
  2. const aCity: { [key: number]: string } = {
  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. if (!/^\d{17}(\d|x)$/i.test(value)) {
  40. callback(new Error('格式错误,请输入正确的身份证号'));
  41. return;
  42. }
  43. value = value.replace(/x$/i, 'a');
  44. if (aCity[parseInt(value.substr(0, 2))] == null) {
  45. callback(new Error('格式错误,请输入正确的身份证号'));
  46. return;
  47. }
  48. const sBirthday = value.substr(6, 4) + '-' + Number(value.substr(10, 2)) + '-' + Number(value.substr(12, 2));
  49. const d = new Date(sBirthday.replace(/-/g, '/'));
  50. if (sBirthday !== d.getFullYear() + '-' + (d.getMonth() + 1) + '-' + d.getDate()) {
  51. callback(new Error('请输入正确的身份证号'));
  52. return;
  53. }
  54. let iSum = 0;
  55. for (let i = 17; i >= 0; i--) {
  56. iSum += (Math.pow(2, i) % 11) * parseInt(value.charAt(17 - i), 11);
  57. }
  58. if (iSum % 11 != 1) {
  59. callback(new Error('请输入正确的身份证号'));
  60. return;
  61. }
  62. callback();
  63. };

//手机号

  1. export const validateMobile = (rule: any, value: string, callback: (error?: Error) => void) => {
  2. console.log(value, '')
  3. if (value === '') {
  4. callback(new Error('请输入手机号'));
  5. } else if (!/^1(3|4|5|6|7|8|9)[0-9]\d{8}$/.test(value)) {
  6. callback(new Error('请输入正确的手机号'));
  7. } else {
  8. callback();
  9. }
  10. };

//邮箱

  1. export const validateEmail = (rule: any, value: string, callback: (error?: Error) => void) => {
  2. if (value === '') {
  3. callback(new Error('请输入邮箱'));
  4. } else if (!/^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/.test(value)) {
  5. callback(new Error('请输入正确的邮箱'));
  6. } else {
  7. callback();
  8. }
  9. };

使用的时候在对应页面引入

使用

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/438274
推荐阅读
相关标签
  

闽ICP备14008679号