【问题标题】:Validating Mobile number using React - validator library使用 React 验证手机号码 - 验证器库
【发布时间】:2021-05-14 16:14:11
【问题描述】:

我希望在反应中使用“验证器”包验证手机号码。 https://www.npmjs.com/package/validator


我目前面临的问题是该功能接受 11 位手机号码。我该如何解决这个问题

实际行为:

isValidNumber('+91998877665511') :- false (12 digits)
isValidNumber('+9199887766551') :- true (11 digits)

预期行为:

isValidNumber('+919988776655') :- true (10 digits)
isValidNumber('+91998877665511') :- false  (12 digits)
isValidNumber('+9199887766551') :- false (11 digits)

注意:这个数字不包括国家代码

【问题讨论】:

  • 使用两个验证器 - isValidNumber() 和 isLength() 就像isValidNumber('1234567890') && isLength('1234567890', {min: 10, max: 10})
  • 不验证手机号码(基于长度或格式等)。验证手机号码的最佳方法是向手机发送代码 (OTP) 并要求用户输入。只有这样才能确保号码有效且有效。

标签: reactjs typescript validation


【解决方案1】:

使用两个验证器 - isValidNumber() 和 isLength() 类似

isValidNumber('1234567890') && isLength('1234567890', {min: 10, max: 10})

【讨论】:

  • 如果号码是印度的 +91 或冰岛的任何其他代码 354 怎么办?
  • 有趣。因此,理想情况下,您应该有两个输入框,一个用于国家代码,另一个用于联系电话。试试这个 Google 库 - github.com/google/libphonenumber
  • 但是验证器包的作用是它也会检查代码,但是包中有一个错误,它也接受 11 位数字(不包括代码)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-04-14
  • 2017-02-06
  • 1970-01-01
  • 1970-01-01
  • 2017-08-17
  • 1970-01-01
  • 2013-03-01
相关资源
最近更新 更多