如何解决如何根据区域设置使用 Formik 和 Yup 设置不同的密码要求?
我正在处理一个网站,该网站的密码要求因国家/地区而异,有人可以帮我解决这个问题吗?到目前为止,我已经走了多远,但它仍然只需要 6 个字符,其他什么都没有。
password: Yup.string()
.when({
is: locale => locale === 'mt',then: Yup.string().matches(
/^(?=.*[A-Za-z])(?=.*\d)(?=.*[@$!%*#?&])[A-Za-z\d@$!%*#?&]{8,}$/,'Must Contain 8 Characters,One Uppercase,One Lowercase,One Number and one special case Character'
),otherwise: Yup.string().min(6,'Must containt at least 6 characters')
})
.required(intl.formatMessage({ id: 'inputs.password.required' }))
});
locale 是国家,在 url 中设置。它正确获取语言环境。
解决方法
你不能只使用这样的东西吗:
password: locale === 'mt' ?
Yup.string().matches(/^(?=.*[A-Za-z])(?=.*\d)(?=.*[@$!%*#?&])[A-Za-z\d@$!%*#?&]{8,}$/,'Must Contain 8 Characters,One Uppercase,One Lowercase,One Number and one special case Character'
) : Yup.string().min(6,'Must containt at least 6 characters')
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。