我是Yup的初学者,我需要对Yup进行一些表单验证。这是我的架构的示例:
test
我的表格在两种情况下有效:用户输入contactID或输入phoneNumber和电子邮件。
我尝试使用public static void main(String[] args) {
int row = (int)(Math.random() * 5 + 1);
int column =(int)(Math.random() * 5 + 1);
String[][] table = new String [row][column];
Scanner read = new Scanner(System.in);
//String word = "";
for(int i = 0; i < table.length; i++) {
for(int j = 0; j < table[i].length; j++) {
System.out.print("Write a name of a fruit: ");
String word = read.next();
函数来实现此功能,但是无法做到这一点。任何帮助,将不胜感激。
答案 0 :(得分:1)
您可以为其余2个字段构建相同的逻辑:
Yup.object().shape({
contactId: Yup.string().when(["phoneNumber", "email"], {
is: (phoneNumber, email) => !phoneNumber || !email,
then: Yup.string().required()
}),
phoneNumber: Yup.string().when("contractId", {
is: contactId => !!contactId,
then: Yup.string().required()
}),
email: Yup.string().when("contractId", {
is: contactId => !!contactId,
then: Yup.string()
.email()
.required()
})
});
要检查电子邮件,可以使用内置功能 Yup.email()。对于电话,您需要构建自定义验证器:
const PHONE_VALIDATOR = /...your RegEx here.../
...
phoneNumber : Yup.string().matches(PHONE_VALIDATOR, 'Phone is not valid').required()