fieldCheck.d.ts 3.2 KB

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