aklump/phone-number

一个轻量级的、无依赖的PHP库,用于处理电话号码。

0.0.9 2024-08-15 01:48 UTC

This package is auto-updated.

Last update: 2024-09-15 02:58:29 UTC


README

一个轻量级的、无依赖的PHP库,用于处理电话号码。该库目前仅关注美国电话号码。要处理国际电话号码,您可以尝试Phone Normalizer,我们从中采用了相同的格式化策略。(感谢dmamontov1on。)

aklump/phone-number

使用Composer安装

  1. 需要此包

    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