注册全局form表单验证工具包

Myth丶恋晨 2021-07-25 20:59 488阅读 0赞

1、js注册文件

  1. let regId = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/; //机构
  2. let email = /^(\w+\.?)*\w+@(?:\w+\.)\w+$/; //邮箱
  3. let tel = /^1(3|4|5|7|8|9)\d{9}$/; //手机号码
  4. // let tel = /(^1[3|4|5|7|8|9]\d{9}$)|(^09\d{8}$)/; // 手机号 + 座机号
  5. let fax = /^(\d{3,4}-)?\d{7,8}$/; //传真
  6. let name = /^[\u4E00-\u9FA5\uf900-\ufa2d·s]{2,10}$/; //姓名
  7. let pass1 = /^[0-9]{6,20}$/; // 6-20 位数字密码
  8. let answer = /^[A-G]{0,1}$/; // 答案(A - G)
  9. let idCard = /(^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}[0-9Xx]$)/; //身份证号
  10. let percent = /^([1]?\d{ 1,2})$/ // 百分比(0-100的正整数,包含0,100)
  11. let FormValidate = (function() {
  12. // eslint-disable-next-line
  13. function FormValidate() { }
  14. // From表单验证规则 可用于公用的校验部分
  15. FormValidate.Form = function() {
  16. return {
  17. // 姓名的验证规则
  18. Name: function(rule, value, callback) {
  19. if (!value) {
  20. return callback(new Error('姓名不能为空!'))
  21. }
  22. if (!name.test(value)) {
  23. callback(new Error('请输入正确姓名!'))
  24. } else {
  25. callback()
  26. }
  27. },
  28. // 邮箱的正则
  29. Email: function(rule, value, callback) {
  30. if (!value) {
  31. return callback(new Error('邮箱不能为空'))
  32. }
  33. if (!email.test(value)) {
  34. callback(new Error('请输入正确的邮箱!'))
  35. } else {
  36. callback()
  37. }
  38. },
  39. // 身份证的验证规则
  40. ID: function(rule, value, callback) {
  41. if (!value) {
  42. return callback(new Error('身份证不能为空'))
  43. }
  44. if (!regId.test(value)) {
  45. callback(new Error('请输入正确的二代身份证号码'))
  46. } else {
  47. callback()
  48. }
  49. },
  50. // 电话号码的验证
  51. Tel: (rule, value, callback) => {
  52. if (!value) {
  53. return callback(new Error('联系电话不能为空!'))
  54. }
  55. if (!tel.test(value)) {
  56. callback(new Error('手机号码有误,请重新填写!'))
  57. } else {
  58. callback()
  59. }
  60. },
  61. // 输入密码验证
  62. Checkpass: (rule, value, callback) => {
  63. if (!value) {
  64. return callback(new Error('请输入正确的登录密码!'))
  65. }
  66. if (!pass1.test(value)) {
  67. callback(new Error('请输入长度为 6 ~ 20 位的登录密码!'))
  68. } else {
  69. callback()
  70. }
  71. },
  72. // 答案选项
  73. Answer: (rule, value, callback) => {
  74. if (!value) {
  75. return callback(new Error('答案不能为空!'))
  76. }
  77. if (!answer.test(value)) {
  78. callback(new Error('请输入A-G 格式的选项!'))
  79. } else {
  80. callback()
  81. }
  82. },
  83. // 身份证号码验证
  84. IdCard: (rule, value, callback) => {
  85. if (!value) {
  86. return callback(new Error('身份证号码不能为空!'))
  87. }
  88. if (!idCard.test(value)) {
  89. callback(new Error('请输入正确格式的身份证号码!'))
  90. } else {
  91. callback()
  92. }
  93. },
  94. // 0-100整数 百分比
  95. Percent: (rule, value, callback) => {
  96. if (!value) {
  97. return callback(new Error('请输入正确格式的百分比'))
  98. }
  99. if (!percent.test(value)) {
  100. callback(new Error('请输入0-100的正整数百分比'))
  101. } else {
  102. callback()
  103. }
  104. },
  105. }
  106. }
  107. // FromOne表单验证规则 用于FromOne个性化的校验
  108. FormValidate.FormOne = function() {
  109. return {
  110. // 姓名的验证规则
  111. Name: function(rule, value, callback) {
  112. if (!value) {
  113. return callback(new Error('姓名不能为空'))
  114. }
  115. if (!name.test(value)) {
  116. callback(new Error('请输入正确姓名!'))
  117. } else {
  118. callback()
  119. }
  120. }
  121. }
  122. }
  123. return FormValidate
  124. }())
  125. exports.FormValidate = FormValidate

2、入口文件注册(main.js)

  1. ...
  2. // 全局表单验证
  3. import fromCommon from "./util/fromCommon.js"
  4. Vue.prototype.$fromCommon = fromCommon; //from 全局验证
  5. ...

3、表单使用

  1. addRules: {
  2. tciCardNum: [{
  3. required: true,
  4. message: '请输入身份证号',
  5. validator: this.$fromCommon.FormValidate.Form().IdCaard,
  6. trigger: 'blur'
  7. }]
  8. }

validator: this.$fromCommon.FormValidate.Form().IdCaard,

发表评论

表情:
评论列表 (有 0 条评论,488人围观)

还没有评论,来说两句吧...

相关阅读

    相关 form验证

    iview默认校验数据类型为String,需要的不是字符串要注明type=’ ’ ![在这里插入图片描述][20191113171956686.png] form表单提交