Нормализация номера телефона (normalize_phone)
Эта функция приводит телефонный номер к стандартному виду: убирает лишние символы, добавляет нужный префикс для российских номеров и возвращает очищенное значение.
normalize_phone
Функция приводит телефон к «нормализованному» виду: удаляет пробелы, скобки, дефисы и другие лишние символы, корректно обрабатывает российские номера, начинающиеся с 8 или 7, и возвращает строку с номером.
Формат записи:
[normalize_phone]номер телефона[/normalize_phone]
Пример:
[normalize_phone]+7 (999) 123-45-67[/normalize_phone]
Результат:
+79991234567
Аргументы
Функция принимает 1 аргумент:
Телефон (обязательный) Любое значение, которое можно интерпретировать как телефонный номер. Допустимо передавать:
Строку:
+7 (999) 123-45-67Число:
89991234567Значение из переменной:
[normalize_phone]{{phone}}[/normalize_phone]
Дополнительные правила для российских номеров:
Если номер начинается с
8, то первая цифра заменяется на7. Пример:8 (999) 123-45-67→+79991234567Если номер начинается с
7(и без+), добавляется+в начало. Пример:79991234567→+79991234567Если номер уже в формате
+7..., он остаётся в этом формате (очищаются только разделители).
Для номеров с другими кодами стран:
Если номер начинается с
+и содержит код другой страны - он просто очищается от лишних символов. Пример:+49 (176) 123-45-67→+491761234567Если номер начинается не с
7или8и без+, он только очищается. Пример:380 99 123 45 67→380991234567
Особенности работы
Если передано некорректное значение - вернется пустая строка, в целях совместимости с интеграциями, которые ожидают получение корректного номера
Значения вроде "123" считаются корректными номерами, валидация значений не входит в зону ответственности данной функции
Примеры использования
[normalize_phone]+7 (999) 123-45-67[/normalize_phone]
+79991234567
Уже корректный номер, удалены только разделители
[normalize_phone]8 999 123-45-67[/normalize_phone]
+79991234567
8 заменена на 7, добавлен +
[normalize_phone]89991234567[/normalize_phone]
+79991234567
Числовой ввод, привели к формату +7...
[normalize_phone]79991234567[/normalize_phone]
+79991234567
Номер начинался с 7, добавлен +
[normalize_phone]+49 (176) 123-45-67[/normalize_phone]
+491761234567
Иностранный номер, просто очищен
[normalize_phone]380 99 123 45 67[/normalize_phone]
380991234567
Не российский код, только очищен
[normalize_phone]тут нет телефона[/normalize_phone]
""
Не удаётся выделить цифры → пустая строка
[normalize_phone][/normalize_phone]
""
Пустое значение
Последнее обновление
Это было полезно?