如何使用React验证电话号码



当前,我正在检查使用'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
}

最新更新