class Validate {
constructor() {}
validator(data, rules) {
let errors = {}
rules.forEach((rule) => {
errors[rule.key] = {}
let value = data[rule.key]
if (rule.required) {
errors[rule.key].required = this.required(value)
}
let keys = Object.keys(rule).filter(item => item !== 'key' && item !== 'required')
keys.forEach(validatorKey => {
if (this[validatorKey]) {
errors[rule.key][validatorKey] = this[validatorKey](value, rule[validatorKey])
} else {
throw `error:没有${validatorKey}这个属性`
}
})
})
return errors
}
required(value) {
Eif (!value && value !== 0) {
return "必填"
}
}
pattern(value, pattern) {
if (pattern === 'email') {
pattern = /^.+@.+$/
}
if (!pattern.test(value)) {
return "格式不正确"
}
}
}
export default Validate
|