UNPKG

zk-desktop-ui

Version:

ZKTeco UI Components

56 lines (50 loc) 1.76 kB
/** * @required async-validator * @author guocailee */ import AsyncValidator from 'async-validator' import rules from 'async-validator/lib/rule' import { t } from '../locale' import * as util from 'async-validator/lib/util' /* eslint-disable no-useless-escape */ export const isEmail = (val) => { return /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(val) } export const isMobile = (val) => { return /^1+\d{10}$/.test(val) } export const isTel = (val) => { return /^(1[3,5,8,7]{1}[\d]{9})|(((400)-(\d{3})-(\d{4}))|^((\d{7,8})|(\d{4}|\d{3})-(\d{7,8})|(\d{4}|\d{3})-(\d{3,7,8})-(\d{4}|\d{3}|\d{2}|\d{1})|(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1}))$)$|^([ ]?)$/.test(val) } function tel(rule, value, callback, source, options) { const errors = [] const validate = rule.required || (!rule.required && source.hasOwnProperty(rule.field)) if (validate) { if (util.isEmptyValue(value) && !rule.required) { return callback() } else { rules.required(rule, value, source, errors, options) } if (!isTel(value)) { errors.push(t('el.errorMessage.tel')) } } callback(errors) } function mobile(rule, value, callback, source, options) { const errors = [] const validate = rule.required || (!rule.required && source.hasOwnProperty(rule.field)) if (validate) { if (util.isEmptyValue(value) && !rule.required) { return callback() } else { rules.required(rule, value, source, errors, options) } if (!isMobile(value)) { errors.push(t('el.errorMessage.mobile')) } } callback(errors) } AsyncValidator.register('tel', tel) AsyncValidator.register('mobile', mobile)