Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex Yup验证密码至少包含一个特殊字符_Regex_Reactjs_Yup - Fatal编程技术网

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]*$