fieldCheck.d.ts 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. /**
  2. * 表单字段验证库
  3. * author:kindring
  4. * date:2023/10/08
  5. */
  6. import { verifyForm } from "./types/formVerify";
  7. import { errMessage, checkCode, checkRule, ruleItem, checkFields, validatorFunction } from "./types/fieldCheck";
  8. /**
  9. * @class FieldCheck
  10. * @description 表单字段验证类
  11. * @property {Array<ruleItem>} ruleItems 验证规则
  12. * @property {function} addRuleItem 添加一条验证规则
  13. * @property {function} verify 检查表单是否符合规则
  14. * @example
  15. * let fieldCheck = new FieldCheck();
  16. * fieldCheck.addRuleItem('rule1',['name'],[
  17. * {
  18. * type: 'string',
  19. * minLength: 2,
  20. * maxLength: 10,
  21. * message: '姓名必须为2-10个字符'
  22. * }
  23. * ]);
  24. * fieldCheck.addRuleItem('rule2',['age'],[
  25. * {
  26. * type: 'number',
  27. * min: 18,
  28. * max: 100,
  29. * message: '年龄必须为18-100岁'
  30. * }]);
  31. * let errMsg = fieldCheck.verify({
  32. * name: 'kindring',
  33. * age: 18});
  34. * console.log(errMsg);
  35. * // null
  36. * let errMsg = fieldCheck.verify({
  37. * name: 'kindring',
  38. * age: 17});
  39. * console.log(errMsg);
  40. * // 年龄必须为18-100岁
  41. */
  42. declare class FieldCheck {
  43. #private;
  44. code_pass: checkCode;
  45. code_notPass: number;
  46. code_notMatch: checkCode;
  47. /**
  48. *
  49. * @param {Array< ruleItem >} [ruleItems] 验证规则数组
  50. */
  51. constructor(ruleItems?: Array<ruleItem>);
  52. /**
  53. * 判断值是否定义
  54. * @param v
  55. * @returns {boolean}
  56. * @private
  57. */
  58. _isDef(v: any): boolean;
  59. _toString: () => string;
  60. /**
  61. * 判断是否为空
  62. * @param v 要检验的值
  63. */
  64. _isEmpty(v: any): boolean;
  65. /**
  66. * 判断是否为正则
  67. * @param v 要检验的值
  68. */
  69. _isRegExp(v: any): boolean;
  70. /**
  71. * 构建验证规则
  72. * @param {Array<string | RegExp>} checkFields 需要验证的字段
  73. * @param {Array<validatorFunction | checkRule>} ruleArr 验证规则
  74. * @returns {ruleItem} 验证规则对象
  75. */
  76. buildRuleItem(name: string, checkFields: checkFields, ruleArr: Array<validatorFunction | checkRule>): ruleItem;
  77. /**
  78. * 添加一条验证规则
  79. * @param ruleName 验证规则名,用于区分
  80. * @param checkFields 用于匹配字段的字符或者正则数组
  81. * @param ruleArr 验证规则
  82. * @returns 返回当前对象
  83. */
  84. addRuleItem(ruleName: string, checkFields: checkFields, ruleArr: Array<validatorFunction | checkRule>): this;
  85. /**
  86. * 获取验证规则
  87. * @param field 字段名
  88. * @returns 验证规则
  89. */
  90. getRuleItem(field: string): ruleItem | undefined;
  91. /**
  92. * 检查字段是否符合规则
  93. * @param field 字段名
  94. * @param value 字段值
  95. * @returns {Array<checkCode | ?errMessage>} 错误码或错误信息
  96. */
  97. checkField(field: string, value: any): [
  98. checkCode,
  99. errMessage
  100. ] | [checkCode];
  101. /**
  102. * 检查表单是否符合规则
  103. * @param formObject 需要检验的表单项 字段:值
  104. * @param [isMustMatch] 是否强制要求匹配规则
  105. * @returns errMessage 错误码或错误信息
  106. */
  107. verify(formObject: verifyForm, isMustMatch?: boolean): errMessage;
  108. }
  109. export default FieldCheck;
  110. //# sourceMappingURL=fieldCheck.d.ts.map