Reactjs 使用Formik在单个字段中进行多个电子邮件验证
是否有任何方法可以在不使用Yup的情况下验证Formik中的多个电子邮件id。 我目前使用以下代码进行单一电子邮件验证:Reactjs 使用Formik在单个字段中进行多个电子邮件验证,reactjs,formik,Reactjs,Formik,是否有任何方法可以在不使用Yup的情况下验证Formik中的多个电子邮件id。 我目前使用以下代码进行单一电子邮件验证: if (!values.cc) { errors.cc = "Required"; } else if (!/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i.test(values.cc)) { errors.cc = "Invalid email addres
if (!values.cc) {
errors.cc = "Required";
} else if (!/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i.test(values.cc)) {
errors.cc = "Invalid email address";
}
电子邮件将以空格分隔。您需要自定义验证功能,这是一个 Formik字段:
<Field
type="text"
name="email"
placeholder="Enter Your Email Address"
validate={(event) => Validators.customFieldLevelValidation(event, [Validators.required, Validators.email, Validators.aol])} />
我使用以下代码进行了验证,在这种情况下,用户需要输入多封电子邮件,并用逗号分隔
if (!values.cc) {
errors.cc = "Required";
} else {
let emailList = values.cc.split(",");
emailList.forEach((email) => {
if (
!/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,6}$/i.test(email)
) {
errors.cc =
"Please provide a valid email. In case of multiple emails, seperate them with a comma (,) ";
}
});
}
是的,这很有帮助:)
email:Yup.string()
.电子邮件(“电子邮件格式为无效”)
.火柴(
/^([^()\[\]\\,;:\s@“]+(\.[^()\[\]\,;:\s@“]+)*)(“+”)(\[[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}]));([a-zA-Z-0-9]++.[a-zA-Z]{2,)$/
,“无效电子邮件格式”)
。必需(“义务!”),
是!没有使用它,因为这是唯一剩下的验证。下次我会用的。
if (!values.cc) {
errors.cc = "Required";
} else {
let emailList = values.cc.split(",");
emailList.forEach((email) => {
if (
!/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,6}$/i.test(email)
) {
errors.cc =
"Please provide a valid email. In case of multiple emails, seperate them with a comma (,) ";
}
});
}
email: Yup.string()
.email("Format de l'email est invalide")
.matches(
/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
, "Format de l'email est invalide")
.required("Obligatoire!"),