// import _ from 'lodash'; 
 | 
import { FormItemRuleWithoutValidator } from '@nutui/nutui-taro/dist/types/__VUE/form/types'; 
 | 
  
 | 
export class FormValidator { 
 | 
  /** 
 | 
   * 验证表单input-number 不为0 
 | 
   */ 
 | 
  static validatorNumberNotNull(value: any, ruleCfg: FormItemRuleWithoutValidator) { 
 | 
    // eslint-disable-next-line eqeqeq 
 | 
    if (!value) { 
 | 
      return Promise.reject(ruleCfg.message); 
 | 
    } 
 | 
    return Promise.resolve(true); 
 | 
  } 
 | 
  
 | 
  static validatorArray(value: any, ruleCfg: FormItemRuleWithoutValidator) { 
 | 
    if (!Array.isArray(value) || !value?.length) { 
 | 
      return Promise.reject(ruleCfg.message); 
 | 
    } 
 | 
    return Promise.resolve(true); 
 | 
  } 
 | 
  
 | 
  // 身份证后六位 
 | 
  static validatorIDNumberSix(value: string, ruleCfg: FormItemRuleWithoutValidator) { 
 | 
    if (BoleRegExp.RegIDNumberSix.test(value)) { 
 | 
      return Promise.resolve(true); 
 | 
    } 
 | 
    return Promise.reject(ruleCfg.message); 
 | 
  } 
 | 
  
 | 
  static validatorUrl(value: string, ruleCfg: FormItemRuleWithoutValidator) { 
 | 
    if (BoleRegExp.RegUrl.test(value)) { 
 | 
      return Promise.resolve(true); 
 | 
    } 
 | 
    return Promise.reject(ruleCfg.message); 
 | 
  } 
 | 
  static validatorUrlWithRarameter(value: string, ruleCfg: FormItemRuleWithoutValidator) { 
 | 
    if (BoleRegExp.RegUrlWithParameter.test(value)) { 
 | 
      return Promise.resolve(true); 
 | 
    } 
 | 
    return Promise.reject(ruleCfg.message); 
 | 
  } 
 | 
  static validatorSocietyCreditCode(value: string, ruleCfg: FormItemRuleWithoutValidator) { 
 | 
    if (!ruleCfg.required && !value) return Promise.resolve(true); 
 | 
    if (/^[^_IOZSVa-z\W]{2}\d{6}[^_IOZSVa-z\W]{10}$/g.test(value)) { 
 | 
      return Promise.resolve(true); 
 | 
    } 
 | 
    return Promise.reject(ruleCfg.message); 
 | 
  } 
 | 
  static validatorPhoneNumber(value: string, ruleCfg: FormItemRuleWithoutValidator) { 
 | 
    console.log('value: ', value); 
 | 
    if (BoleRegExp.RegPhoneNumber.test(value)) { 
 | 
      return Promise.resolve(true); 
 | 
    } 
 | 
    return Promise.reject(ruleCfg.message); 
 | 
  } 
 | 
  static validatorTelNumber(value: string, ruleCfg: FormItemRuleWithoutValidator) { 
 | 
    if (BoleRegExp.RegTelNumber.test(value)) { 
 | 
      return Promise.resolve(true); 
 | 
    } 
 | 
    return Promise.reject(ruleCfg.message); 
 | 
  } 
 | 
  static validatorIDCard(value: string, ruleCfg: FormItemRuleWithoutValidator) { 
 | 
    if (BoleRegExp.RegIDCard.test(value)) { 
 | 
      return Promise.resolve(true); 
 | 
    } 
 | 
    return Promise.reject(ruleCfg.message); 
 | 
  } 
 | 
  static validatorNumber(value: string, ruleCfg: FormItemRuleWithoutValidator) { 
 | 
    if (BoleRegExp.RegNumber.test(value)) { 
 | 
      return Promise.resolve(true); 
 | 
    } 
 | 
    return Promise.reject(ruleCfg.message); 
 | 
  } 
 | 
  
 | 
  static validatorEmail(value: string, ruleCfg: FormItemRuleWithoutValidator) { 
 | 
    if (!ruleCfg.required && !value) return Promise.resolve(true); 
 | 
    if (BoleRegExp.RegEmail.test(value)) { 
 | 
      return Promise.resolve(true); 
 | 
    } 
 | 
    return Promise.reject(ruleCfg.message); 
 | 
  } 
 | 
} 
 | 
  
 | 
export class BoleRegExp { 
 | 
  static RegIDCard = 
 | 
    /^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/; 
 | 
  
 | 
  // static RegEmail = 
 | 
  //   /^(([^<>()\\[\]\\.,;:\s@"]+(\.[^<>()\\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+\.)+[a-zA-Z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}))$/; 
 | 
  static RegEmail = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/; 
 | 
  
 | 
  /**只有手机 */ 
 | 
  static RegPhoneNumber = /^1[3-9]\d{9}$/; 
 | 
  
 | 
  /**座机 + 手机*/ 
 | 
  static RegTelNumber = 
 | 
    /(^(0[0-9]{2,3})?[-\s]?([2-9][0-9]{6,7})+([0-9]{1,4})?$)|(^((\(\d{3}\))|(\d{3}[-\s]))?(1[3-9]\d{9})$)|(^(400)[-\s](\d{3})[-\s](\d{4})(.)(\d{1,4})$)|(^(400)(\d{3})(\d{4}$))/; 
 | 
  
 | 
  /**只有座机 */ 
 | 
  static RegOnlyTelNumber = 
 | 
    /(^(0[0-9]{2,3})?[-\s]?([2-9][0-9]{6,7})+([0-9]{1,4})?$)|(^(400)[-\s](\d{3})[-\s](\d{4})(.)(\d{1,4})$)|(^(400)(\d{3})(\d{4}$))/; 
 | 
  
 | 
  static RegSocietyCreditCode = /^[^_IOZSVa-z\W]{2}\d{6}[^_IOZSVa-z\W]{10}$/g; 
 | 
  
 | 
  static RegNumber = /^\d+$/; 
 | 
  
 | 
  static RegFileName = /(.*\/)*([^.]+).*/gi; 
 | 
  
 | 
  static RegCanPreview = /png|jpg|jpeg|doc|docx|txt|ppsx|xlsx|xls|pdf/gi; 
 | 
  
 | 
  static RegDecimalNumber = /^\d+(\.\d{0,2}){0,1}$/; 
 | 
  
 | 
  static RegBankCard = /^\d{16,30}$/; 
 | 
  
 | 
  static RegUrl = /^(https?:\/\/)?([\da-z.-]+)\.([a-z.]{2,6})(\/\w+)*\/?$/; 
 | 
  
 | 
  // 身份证后六位 
 | 
  static RegIDNumberSix = /^\d{5}[X]$|^\d{6}$/; 
 | 
  
 | 
  static RegUrlWithParameter = 
 | 
    /^((http|ftp|https):\/\/)?[\w\-_]+(\.[\w\-_]+)+([\w\-\\.,@?^=%&:/~\\+#]*[\w\-\\@?^=%&/~\\+#])?$/; 
 | 
  
 | 
  static RegUrlWithParameterExact = 
 | 
    /^((http|ftp|https):\/\/)[\w\-_]+(\.[\w\-_]+)+([\w\-\\.,@?^=%&:/~\\+#]*[\w\-\\@?^=%&/~\\+#])?$/; 
 | 
} 
 |