如何使用反应验证电话号码

Akb*_*sha 0 validation plugins libphonenumber reactjs

目前,我正在检查以使用“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 :-(
Run Code Online (Sandbox Code Playgroud)

预期行为

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
Run Code Online (Sandbox Code Playgroud)

小智 6

您可以使用 npm 包“验证器”。

npm install validator --save
Run Code Online (Sandbox Code Playgroud)

然后

import validator from 'validator' 

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


console.log(validatePhoneNumber('react')) //=> false
console.log(validatePhoneNumber('0641732123')) //=> true
Run Code Online (Sandbox Code Playgroud)

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

文档:https : //www.npmjs.com/package/validator