Files
portal/app/app/Support/PhoneNormalizer.php
T
2026-06-18 22:25:23 +03:00

27 lines
675 B
PHP

<?php
declare(strict_types=1);
namespace App\Support;
final class PhoneNormalizer
{
/**
* Нормализует российский номер к виду +7XXXXXXXXXX (12 символов) или null, если невалиден.
*/
public static function normalize(string $raw): ?string
{
$digits = preg_replace('/\D+/', '', $raw) ?? '';
if (strlen($digits) === 11 && ($digits[0] === '8' || $digits[0] === '7')) {
$digits = '7'.substr($digits, 1);
} elseif (strlen($digits) === 10) {
$digits = '7'.$digits;
} else {
return null;
}
return '+'.$digits;
}
}