【问题标题】:how to implement validation for phone number?如何实现电话号码验证?
【发布时间】: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


【解决方案1】:

正则表达式正确,但需要正确使用正则表达式。

这里是docs

试试这个,它会断言手机是否与正则表达式匹配:

 } else if (!regex.test(phone)) {

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-29
    • 2017-06-17
    相关资源
    最近更新 更多