当前,我正在检查使用'libphoneNumber-js'插件in react。
它具有一种公共方法,即 iSvalidNumber 它已用于使用扩展代码验证手机号码。
我的问题I,此功能已接受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
您可以使用NPM软件包'验证器'。
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
您还可以为特定国家(例如'za')设置语言环境,等等。
文档:https://www.npmjs.com/package/validator
如果您没有任何NPM软件包的问题,则可以使用
https://catamphetamine.gitlab.io/reaeact-phone-number-input/
软件包。使用此软件包,您可以轻松验证任何电话号码。
var phone = '1234567890';
if( !(phone.match('[0-9]{10}')) ){
alert('Please provide valid phone number');
}else{
//good to go
}