【发布时间】:2021-01-15 11:00:20
【问题描述】:
我正在开发一个使用 redux 表单的 react 项目。如果需要,我已经遍历了这些字段以检查它们的验证要求。这个堆栈运行良好 - 但我知道我应该重新访问它以将部件放入函数中
if(field.validate.includes("email")) {
//email
if (!/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i.test(values[fieldName])) {
errors[fieldName] = 'Invalid email address'
}
}
if(field.validate.includes("minLength")) {
//minLength
if (values[fieldName] !== undefined && values[fieldName].length < 3) {
errors[fieldName] = 'Must be 3 characters or more'
}
}
if(field.validate.includes("required")) {
//required
if (!values[fieldName] && typeof values[fieldName] !== "number") {
errors[fieldName] = 'Required'
}
}
我试图编写一个看起来像这样的函数 - 但我不想破坏堆栈。
messageHandler(field, validation, rule, message){
if(field.validate.includes(validation)) {
if (rule) {
return message;
}
}
}
【问题讨论】:
-
这个
/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i是非常糟糕 的电子邮件正则表达式...有些人住在其他国家,使用与A-Z不同的字符...不要'使用这些正则表达式不会使人们的生活变得比应有的复杂。 -
当时我只需要让一些工作正常 - 这个解决方案似乎工作正常。
标签: javascript reactjs validation