• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/phonenumber/formatter.php
  • Класс: BitrixMainPhoneNumberFormatter
  • Вызов: Formatter::selectOriginalFormatForNumber
static function selectOriginalFormatForNumber(PhoneNumber $number)
{
	$nationalNumber = $number->getNationalNumber();
	$isInternational = $number->isInternational();
	$hasNationalPrefix = $number->getNationalPrefix() != '';
	$countryMetadata = MetadataProvider::getInstance()->getCountryMetadata($number->getCountry());
	$availableFormats = static::getAvailableFormats($countryMetadata);

	foreach ($availableFormats as $format)
	{
		if($isInternational)
		{
			if(isset($format['intlFormat']) && $format['intlFormat'] === 'NA')
			{
				continue;
			}
		}
		else
		{
			if($hasNationalPrefix && !static::_isNationalPrefixSupported($format, $countryMetadata))
			{
				continue;
			}
		}

		if(isset($format['leadingDigits']) && !static::matchLeadingDigits($nationalNumber, $format['leadingDigits']))
		{
			continue;
		}

		$formatPatternRegex = '/^' . $format['pattern'] . '$/';
		if(preg_match($formatPatternRegex, $nationalNumber))
		{
			return $format;
		}
	}
	return false;
}