如何使用React验证电话号码

时间:2019-02-26 06:32:34

标签: reactjs validation plugins libphonenumber

当前,我正在使用react中的'libphonenumber-js'插件来检查手机号码。

它有一个公共方法 isValidNumber ,已用于验证带有分机代码的手机号码。

我的问题是,此功能已接受11位数字的印度手机号码(实际上,印度移动号码只有10位数字)。该如何解决?

实际行为

isValidNumber('+919876543210') => return true (10 digits)
isValidNumber('+91987654321') => return false (9 digits)
isValidNumber('+91987654321011') => return false  (12 digits)
isValidNumber('+9198765432101') => return true (11 digits) // Accepted 11 digits :-(

预期行为

isValidNumber('+919876543210') => return true (10 digits)
isValidNumber('+91987654321') => return false (9 digits)
isValidNumber('+91987654321011') => return false  (12 digits)
isValidNumber('+9198765432101') => return false (11 digits) // It should be return false

2 个答案:

答案 0 :(得分:1)

如果使用任何npm软件包都没有问题,则可以使用

  

http://catamphetamine.github.io/react-phone-number-input/

软件包。 使用此软件包,您可以轻松验证任何电话号码。

答案 1 :(得分:0)

您可以使用npm包“ validator”。

npm install validator --save

然后

import validator from 'validator' 

validatePhoneNumber = (number) => {
 const isValidPhoneNumber = validator.isMobilePhone(number)
 return (isValidPhoneNumber)
}


console.log(validatePhoneNumber('react')) //=> false
console.log(validatePhoneNumber('0641732123')) //=> true

您还可以设置特定国家/地区的语言环境(例如“ en-ZA”),以及更多选项。

docs:https://www.npmjs.com/package/validator