当前,我正在使用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
答案 0 :(得分:1)
如果使用任何npm软件包都没有问题,则可以使用
软件包。 使用此软件包,您可以轻松验证任何电话号码。
答案 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”),以及更多选项。