如何通过Yup检查输入是邮件还是用户名



我有一个字段要验证它是用户名还是邮件地址。我正在使用Yup进行验证,但在设置正确的Yup模式时遇到了问题。

如果输入既不是邮件地址也不是用户名,则验证应该失败。换句话说,必须满足这两个条件之一才能通过验证。

let schema = yup.object().shape({
email: yup.string().email(), 
});
// username pattern
var pattern = new RegExp(/^(?=[a-zA-Z0-9._]{5,25}$)[^_.].*[^_.]$/); 

要验证和执行验证,您可以在Yup中使用以下形状的字段:

Yup.string()
.required('Required Field')
.test('is-email', 'Invalid email', (value) => {
if (value) {
return value.includes('@') ? Yup.string().email().isValidSync(value) : true
}
return true
}),

您可以使用.test方法以相同的方式将regex添加到用户名中

相关内容

  • 没有找到相关文章

最新更新