• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/phonenumber/formatter.php
  • Класс: BitrixMainPhoneNumberFormatter
  • Вызов: Formatter::format
static function format(PhoneNumber $number, $formatType, $forceNationalPrefix = false)
{
	if(!$number->isValid())
	{
		return $number->getRawNumber();
	}
	if($formatType === Format::E164)
	{
		return '+' . $number->getCountryCode() . $number->getNationalNumber();
	}

	$countryMetadata = MetadataProvider::getInstance()->getCountryMetadata($number->getCountry());
	$format = static::selectFormatForNumber($number, $formatType, $countryMetadata);

	if($format)
	{
		$formattedNationalNumber = static::formatNationalNumber(
			$number->getNationalNumber(),
			$formatType,
			$countryMetadata,
			$format,
			$forceNationalPrefix
		);
	}
	else
	{
		$formattedNationalNumber = $number->getNationalNumber();
	}

	if($number->hasExtension())
	{
		$formattedNationalNumber .= $number->getExtensionSeparator() ." ". $number->getExtension();
	}

	if($formatType == Format::INTERNATIONAL)
	{
		return '+' . $number->getCountryCode() . ' ' . $formattedNationalNumber;
	}
	else if($formatType == Format::NATIONAL)
	{
		return $formattedNationalNumber;
	}

	return $number->getRawNumber();
}