是的验证;同一个字段可以接受不同的类型吗?
Yup validation; can the same field accept different types?
我对 Yup 很陌生。我正在尝试验证一个字段可以是遵循特定正则表达式的字符串,也可以是此类字符串的数组。
这是检查字符串与我的正则表达式匹配的工作示例
{ field: yup.string().matches(regex) }
现在我希望 field
也有效,如果它有一个这样的字符串数组:
{field: yup.array().of(yup.string().matches(regex))}
但是如何将两者结合起来呢?我试过:
{
field: yup.mixed().when('field', {
is: Array.isArray,
then: yup.array().of(yup.string().matches(regex)),
otherwise: yup.string().matches(regex)
})
}
但是我得到一个循环依赖错误是可以理解的,因为该字段依赖于它自己。正确的语法是什么?
yup.mixed().test('test-name', 'error-msg', (value) => {
if (Array.isArray(value))
for (let i = 0; i < value.length; i++) {
if (!new RegExp('your-regx').test(value[i])) {
return false;
}
}
else {
if (!new RegExp('your-regx').test(value)) {
return false;
}
}
})
我对 Yup 很陌生。我正在尝试验证一个字段可以是遵循特定正则表达式的字符串,也可以是此类字符串的数组。
这是检查字符串与我的正则表达式匹配的工作示例
{ field: yup.string().matches(regex) }
现在我希望 field
也有效,如果它有一个这样的字符串数组:
{field: yup.array().of(yup.string().matches(regex))}
但是如何将两者结合起来呢?我试过:
{
field: yup.mixed().when('field', {
is: Array.isArray,
then: yup.array().of(yup.string().matches(regex)),
otherwise: yup.string().matches(regex)
})
}
但是我得到一个循环依赖错误是可以理解的,因为该字段依赖于它自己。正确的语法是什么?
yup.mixed().test('test-name', 'error-msg', (value) => {
if (Array.isArray(value))
for (let i = 0; i < value.length; i++) {
if (!new RegExp('your-regx').test(value[i])) {
return false;
}
}
else {
if (!new RegExp('your-regx').test(value)) {
return false;
}
}
})