aklump / phone-number
一个轻量级的、无依赖的PHP库,用于处理电话号码。
0.0.9
2024-08-15 01:48 UTC
Requires
- php: >=7.3
Requires (Dev)
- aklump/phpswap: ^0.0.7
- phpunit/phpunit: ^9.6
README
一个轻量级的、无依赖的PHP库,用于处理电话号码。该库目前仅关注美国电话号码。要处理国际电话号码,您可以尝试Phone Normalizer,我们从中采用了相同的格式化策略。(感谢dmamontov 和 1on。)
使用Composer安装
-
需要此包
composer require aklump/phone-number:^0.0
用法
格式化号码
- 标记符是
#CC#
表示国家代码。#c#
表示区号###
(最左侧三位)表示本地交换。####
(最右侧四位)表示用户号码。
\AKlump\PhoneNumber\PhoneNumberFormats
提供的预定义格式- 无效的电话号码不会格式化,但会抛出异常。
- 要获取无效电话号码的违规列表,请使用
::validate
方法。
$phone = (new \AKlump\PhoneNumber\USPhoneNumberFormatter(); $number = $phone->format('3608881223'); // '(360) 888-1223' === $formatted
如果您的应用程序上下文是区域性的,您可能需要假设一个默认区号。
$default_area_code = 360; $phone = (new \AKlump\PhoneNumber\USPhoneNumberFormatter($default_area_code); $number = $phone->format('8881223'); // '(360) 888-1223' === $formatted
适用于短信的格式
$number = $phone->format('888-1223', \AKlump\PhoneNumber\PhoneNumberFormats::SMS); // '+13608881223' === $number
使用自定义格式
// Provide a custom default format. $phone = (new \AKlump\PhoneNumber\USPhoneNumberFormatter(360, '+#CC#.#c#.###.####'); $number = $phone->format('888-1223'); // '+1.360.888.1223' === $number
跳出框外思考
// Convert to a JSON string. $phone = (new \AKlump\PhoneNumber\USPhoneNumberFormatter(360, \AKlump\PhoneNumber\PhoneNumberFormats::JSON); $number = $phone->format('888-1223'); // '{"country":"+1","areaCode":206,"localExchange":555,"subscriberNumber":1212}' === $number
验证号码
$phone = (new \AKlump\PhoneNumber\USPhoneNumberFormatter(); $violations = $phone->validate('3608881223'); foreach($violations as $violation) { echo $violation; } $is_valid = empty($violations);
- 另请参阅
\AKlump\PhoneNumber\PhoneNumberViolations