Regex Yup验证密码至少包含一个特殊字符
我使用的是以下选项:Regex Yup验证密码至少包含一个特殊字符,regex,reactjs,yup,Regex,Reactjs,Yup,我使用的是以下选项: export const validationSchema = Yup.object().shape({ password: Yup.string() .required('Password is required') .matches( /^[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]*$/, 'Need one special character', ), conf
export const validationSchema = Yup.object().shape({
password: Yup.string()
.required('Password is required')
.matches(
/^[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]*$/,
'Need one special character',
),
confirmPassword: Yup.string()
.oneOf([Yup.ref('password'), null], 'Passwords must match')
.required('Password confirm is required'),
});
我还在线测试regex模式,以确保该模式将捕获字符串中的任何特殊字符
我想这可能是您的错误,或者我做错了什么您可以尝试使用以下正则表达式模式:
^.*[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?].*$
^.*.[!@$%^&*(\+\-=\[\]{};':“\ \ \ \ \ \,.\/?]”*$
只要输入有特殊字符,它就与任何输入匹配。更新的React代码:
export const validationSchema = Yup.object().shape({
password: Yup.string()
.required('Password is required')
.matches(
/^.*[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?].**$/,
'Need one special character',
),
confirmPassword: Yup.string()
.oneOf([Yup.ref('password'), null], 'Passwords must match')
.required('Password confirm is required'),
});
export const validationSchema=Yup.object().shape({
密码:Yup.string()
.required('需要密码')
.火柴(
/^.*[!@#$%^&*()_+\-=\[\]{};':"\\|,.\/?].**$/,
“需要一个特殊字符”,
),
confirmPassword:Yup.string()
.oneOf([Yup.ref('password'),null],“密码必须匹配”)
.required(“需要密码确认”),
});
您可以尝试以下正则表达式:
^[0-9A-Za-z]*[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?][0-9a-zA-Z]*$
^[0-9A-Za-z]*[!@$%^&*()\+\-=\[\]{};:“\\\\\,.\/?][0-9A-Za-z]*$
对上述正则表达式的解释:
^,$
-分别匹配给定字符串的开头和结尾
[0-9A-Za-z]*
-匹配给定范围内的任何字符零次或多次。
[!@$%^&*(\+\-=\[\]{};':“\ \ \ \ \”,.\/?]
-在给定集合中正好匹配一个特殊字符
你可以找到regex演示版谢谢,我忘了在特殊字符前后添加匹配任何字符的模式。谢谢你的分解!非常有用。
^[0-9A-Za-z]*[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?][0-9a-zA-Z]*$