【发布时间】:2021-04-28 09:17:53
【问题描述】:
我创建了一个表单,需要通过它的内容(空,!empty)和电话号码字段来验证字段,以便电话号码匹配正则表达式(乌克兰电话号码)。 此选项不起作用(
const regex = /^\+[0-9]{3}\s\((\d+)\)-\d{3}-\d{2}-\d{2}/g
const validate = (username, phone, comment) => {
if ((username.length === 0 || phone.length === 0, comment.length === 0)) {
setErrorEmpty('the field is empty !')
} else if (!phone.match.regex) {
setPhoneErr('the format is wrong !')
} else {
setValidated(true)
}
}
乌克兰号码由 10 位数字组成:例如:0954343333 或 (38)0954343333
【问题讨论】:
-
您不应该编写正则表达式来验证电话号码。否则,它很快就会变得难以为您(开发人员)维护,并为最终用户拒绝(糟糕的 UX)。相反,做一些简单/基本的验证,以确保用户写的东西看起来像一个数字。确保电话号码有效与否的唯一方法是在手机上发送 OTP / 代码并要求用户输入该代码。或者你应该使用图书馆。
标签: javascript reactjs react-native validation react-hooks