UNPKG

abbott-methods

Version:

abbott,methods,method,functions,function

35 lines (34 loc) 1.4 kB
import { formatUsername } from '../format/formatUsername' import { formatMobile } from '../format/formatMobile' import { formatEmail } from '../format/formatEmail' import { typeEmpty } from '../type/typeEmpty' /** * @desc 验证是否账号格式 * @param {boolean} required * @param {String} validateValue * @param {*} callback * @param {String} field * @param {String} [action] * @param {Number} [min] * @param {Number} [max] */ export const vAccount = (required: boolean, validateValue: string, callback: any, field: string = '用户名', action: string = '填写', min?: number, max?: number): void => { if (!required && !validateValue) { callback() } else { if (typeEmpty(validateValue)) { action = action || '填写' callback(new Error(`${field}必须${action}`)) if (formatMobile(validateValue) || formatEmail(validateValue) || formatUsername(validateValue)) { if (min && max && (validateValue.length < ~~Math.abs(min) || validateValue.length > ~~Math.abs(max))) { const howMany = min === max ? String(max) : min + '-' + max callback(new Error(`${field}的长度为${howMany}个字符`)) } else { callback() } } else { callback(new Error(`${field}是手机号码、电子邮箱、以字母开头、由字母、数字、减号、点、下划线组成的账号`)) } } } }