import { AbstractControl, ValidatorFn } from '@angular/forms'; export interface ValidationResult { [key: string]: boolean; } export declare class UofxValidators { /** 只允許數字或字母 */ static onlyDigitsOrLetters(control: AbstractControl): ValidationResult; /** * 驗證密碼 * @description 密碼原則: 密碼長度為6~20,並且必須包含一個英文及一個數字 * @description 增強型密碼原則: 密碼長度至少為8~20,並且必須包含大小寫字母、數字和符號 * @param {AbstractControl} control * @param {number} isStrong 密碼原則是否設定為增強型 */ static passwordRule(control: AbstractControl, isStrong: number): ValidationResult; /** 手機號碼 0912345678 or 0912-345678 or 0912-345-678 */ static phoneNumber(control: AbstractControl): ValidationResult; /** 身分證字號 或 外籍居留證 */ static idCardNumber(control: AbstractControl): ValidationResult; /** 代碼規則 */ static codeRule(control: AbstractControl): ValidationResult; /** 市內電話:中間須包含 - 符號,ex. 07-9706789、075-9706789、0756-9706789、0756-97067899 */ static telephone(control: AbstractControl): ValidationResult; /** 統一編號:8位數字,ex.22311556 */ static unifiedBusinessNo(control: AbstractControl): ValidationResult; /** 驗證最小日期 */ static dateMin(minDate: Date | string): ValidatorFn; /** 驗證最大日期 */ static dateMax(maxDate: Date | string): ValidatorFn; /** * 用於結束日期,判斷結束日期必須晚於(或等於)開始日期 * - * 起訖在不同control裡面 */ static compareStartDate(startDateControl: AbstractControl, allowEqual?: boolean): ValidatorFn; /** * 用於ejs-daterangepicker,結束日期必須晚於開始日期 * - * 起訖在同一個control裡面 */ static compareDateRangePicker(control: AbstractControl): ValidationResult; /** 必填時不允許純空格字串 */ static notAllowedSpaceString(control: AbstractControl): ValidationResult; /** * @static 檔案必填 * @param {AbstractControl} control * @description control.value 會是一個檔案物件,裡面有 files 陣列,陣列長度為0代表沒有檔案 * @return {*} {ValidationResult} 若驗證失敗,回傳 { fileRequired: true },驗證成功回傳 null * @memberof UofxValidators */ static fileRequired(control: AbstractControl): ValidationResult; }