validateInputHandle.ets 1.2 KB
/**
 * 手机号和密码的正则表达式 API
 * @param input : 用户输入的手机号或者密码或者用户名
 * @param type  : 调用者需要明确传入的是手机号 还是 密码 校验
 */
type typeValue = "phone" | "password" | "email" | "idCard" | "businessLicenseNo" | "username"
export function ValidateInputHandle(input: string, type: typeValue): boolean {
  switch(type) {
    case "phone":
      const phoneRegex = /^1[3456789]\d{9}$/
      return phoneRegex.test(input)
    case "email":
      const emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.(com|cn|net|org|edu|gov|io|co)$/;
      return emailRegex.test(input)
    case "businessLicenseNo":
      const businessLicenseNoRegex = /^[0-9A-HJ-NPQRTUWXY]{2}\d{6}[0-9A-HJ-NPQRTUWXY]{10}$/
      return businessLicenseNoRegex.test(input)
    case "username":
      const usernameRegex = /^[a-zA-Z0-9]{4,20}$/
      return usernameRegex.test(input)
    case "idCard":
      if(input === '') {
        return true
      } else {
        const idCardRegex = /^([1-6][1-9]|50)\d{4}(18|19|20)\d{2}((0[1-9])|10|11|12)(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/
        return idCardRegex.test(input)
      }
    default :
      throw new Error("传入的参数有误!")
  }
}