formRules.js 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. // async-validator rules
  2. // to view at https://github.com/yiminghe/async-validator
  3. const username = [
  4. {
  5. required: true,
  6. pattern: /^[a-zA-Z0-9_-]{2,19}$/,
  7. message: "用户名只能包含字母、数字、下划线以及短横线,长度3-20位",
  8. trigger: "change"
  9. }
  10. ];
  11. const commonCode = ({ prop, min = 3, max = 20 }) => {
  12. return [
  13. {
  14. required: true,
  15. pattern: new RegExp(`^[a-zA-Z0-9_]{${min},${max}}$`),
  16. message: `${prop}只能由数字、字母和下划线组成,长度${min}-${max}个字符`,
  17. trigger: "change"
  18. }
  19. ];
  20. };
  21. const email = [
  22. {
  23. required: true,
  24. type: "email",
  25. message: "邮箱格式不正确",
  26. trigger: "change"
  27. }
  28. ];
  29. const password = [
  30. {
  31. required: true,
  32. pattern: /^[a-zA-Z0-9_]{6,20}$/,
  33. message: "密码只能由数字、字母和下划线组成,长度6-20个字符",
  34. trigger: "change"
  35. }
  36. ];
  37. const phone = [
  38. {
  39. required: true,
  40. pattern: /^1\d{10}$/,
  41. message: "请输入合适的手机号码",
  42. trigger: "change"
  43. }
  44. ];
  45. const smscode = [
  46. {
  47. required: true,
  48. pattern: /^[a-zA-Z0-9]{4}$/,
  49. message: "请输入4位短信验证码",
  50. trigger: "change"
  51. }
  52. ];
  53. const numberValidator = message => {
  54. return [
  55. {
  56. required: true,
  57. validator: (rule, value, callback) => {
  58. if (!value && value !== 0) {
  59. callback(new Error(message));
  60. } else {
  61. callback();
  62. }
  63. },
  64. trigger: "change"
  65. }
  66. ];
  67. };
  68. export {
  69. username,
  70. commonCode,
  71. email,
  72. password,
  73. phone,
  74. smscode,
  75. numberValidator
  76. };