【发布时间】:2021-10-02 22:21:33
【问题描述】:
我正在使用yup 进行验证,它看起来像这样
export const signinSchema = yupResolver(
yup.object().shape({
username: yup.string().required("Email is a required field."),
password: yup
.string()
.required("Password is a required field.")
.matches(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@#$%^&+=])/, {
message:
"Password must be at least one uppercase, one lowercase, one special character and one number.",
})
.min(8, "Password must be at least 8 charaters."),
}),
)
但我想知道我们可以验证密码长度(.min(8, "Password must be at least 8 charaters.")和正则表达式(
.matches(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@#$%^&+=])/, {
message:
"Password must be at least one uppercase, one lowercase, one special character and one number.",
})
同时??就像将两个条件合二为一
非常感谢你
【问题讨论】:
-
您的密码验证对用户体验不利。你应该分开你的验证规则。每个规则应该只做一件事。一条规则用于大写,一条用于小写,一条用于必需等。如果不将它们分开,您只能返回一般消息,这些消息不会告诉用户他们的输入到底有什么问题。
标签: reactjs react-native yup