samuelbie / mzmsisdn
莫桑比克用户的多媒体识别码(MSISDN)识别和清理库
2.2.1
2023-01-20 22:05 UTC
Requires
- ext-json: *
- illuminate/support: ^6.0||^7.0||^8.0||^9.0
Requires (Dev)
- phpunit/phpunit: 4.*
- scrutinizer/ocular: ~1.1
README
轻松验证和操作莫桑比克手机号码。支持TMcel、Vodacom和Movitel
索引
安装
在项目根目录下执行以下命令(假设您已安装Composer):
composer require samuelbie/mzmsisdn
使用
验证手机号码
最基本的方法是执行类 Msisdn 的静态方法 validate,传递手机号码作为参数。
$mobileNumber = '823847698'; if (Msisdn::validate($mobileNumber)) { echo 'Valid mobile number'; } else { echo 'Invalid mobile number'; }
validate 方法将编译或清理输入的号码并执行验证,确保即使用户在字符串中间输入了分隔符,方法也会返回真,如果该号码确实是有效的。
$validMobileNumber = '+258823847556'; $validMobileNumber = '+258-82-38-47-556'; $validMobileNumber = '847386187'; $validMobileNumber = '84.738.6187'; $validMobileNumber = '258 82 38 47 556 ';
实例化MSISDN对象
另一种方法是创建一个 MSISDN 类的实例,并将联系号码格式化为莫桑比克格式。
$mobileNumber = '823847556'; $msisdn = new Msisdn($mobileNumber);
如果构造函数没有使用有效号码提供,MSISDN 对象将抛出 InvalidMsisdnException。在这种情况下,处理异常或在构建对象之前验证号码是一个好主意。
$invalidMobileNumber = '82-38-47-55'; try { $msisdn = new Msisdn($invalidMobileNumber); } catch (InvalidMsisdnException $e) { echo 'The number is invalid'; return; }
或者
$invalidMobileNumber = '82-38-47-55'; if (Msisdn::validate($invalidMobileNumber)) { $msisdn = new Msisdn($invalidMobileNumber); } else { echo 'Invalid mobile number'; return; }
手机号码标准化格式
实例化一个 Msisdn 对象时,可以根据您的上下文返回多种手机号码格式。
$mobileNumber = '823847556'; $msisdn = new Msisdn($mobileNumber); echo $msisdn->get(); // will return 258823847556 echo $msisdn->getFormatted(); // will return "+258 823 847 556" echo $msisdn->getFullNumber(); // will return +258823847556
基于运营商的功能
可能需要根据联系号码的原始运营商执行一些功能。
在此处假设
- 82 或 83 是 TMcel 的前缀
- 84 或 85 是 Vodacom 的前缀
- 86 或 87 是 Movitel 的前缀
$mobileNumber = '823847555'; $msisdn = new Msisdn($mobileNumber); echo $msisdn->getOperator(); // will return TMCEL
验证运营商
例如,如果您想知道联系号码是否属于特定的运营商。
$mobileNumber = '823847555'; $msisdn = new Msisdn($mobileNumber); echo $msisdn->isVodacom(); // will return false echo $msisdn->isTmcel(); // will return true echo $msisdn->isMovitel(); // will return false
$mobileNumber = '847386728'; $msisdn = new Msisdn($mobileNumber); echo $msisdn->isVodacom(); // will return true echo $msisdn->isTmcel(); // will return false echo $msisdn->isMovitel(); // will return false
运营商前缀
同样,您可以仅收集运营商的前缀。
$mobileNumber = '823847556'; $msisdn = new Msisdn($mobileNumber); echo $msisdn->getPrefix(); // will return 82
Laravel验证集成
此包已包含与Laravel验证的集成,您可以在其中轻松对 HTTP requests 进行验证。
"msisdn" // This validates mozambican mobile number "msisdn_vodacom" // This just vodacom mobile number "msisdn_movitel" // This just movitel mobile number "msisdn_tmcel" // This just tmcel mobile number
示例
$validated = $request->validate([ 'telefone' => 'bail|required|msisdn', 'contacto_vodacom' => 'bail|required|msisdn_vodacom', 'contacto_movitel' => 'bail|required|msisdn_movitel', 'contacto_tmcel' => 'bail|required|msisdn_tmcel', ]);
致谢
许可
MIT 许可证(MIT)。有关更多信息,请参阅许可证文件。