fieldCheck.d.ts 3.2 KB

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