- Форматирование номеров телефона с помощью регулярных выражений
- Номера телефонов в формате Excel
- Формат телефонных номеров в Excel
- Как отформатировать телефонные номера в Excel?
- Форматирование телефонных номеров в Excel — Пример № 1
- Форматирование телефонных номеров в Excel — пример № 2
- Плюсы формата телефонных номеров в Excel
- То, что нужно запомнить
- Рекомендуемые статьи
- Как привести телефонные номера к единому формату?
- Как это сделать?
- Как это работает?
Форматирование номеров телефона с помощью регулярных выражений
Такая элементарная вещь, как номер телефона, в письменных текстах живёт во множестве вариантов. Обыкновенный номер типа +7 (123) 123-45-67 можно встретить записанным без скобок или дефисов ( +7 123 1234567 ), а то и вообще без пробелов ( +71231234567 ). Не собираюсь оскорблять чувства пишущих, им и так непросто. Но уважающий себя веб-ресурс не может допустить такой типографической разношёрстности. Плюс к тому, необлагороженные номера неудобно читать человеку (то самое human-readable).
Данная статья о том, как привести все телефонные номера на странице к однообразному виду, а также проставить корректные ссылки типа tel: на них. Для решения поставленной задачи используются регулярные выражения JavaScript. Хороший обзор регэкспов дан здесь, также почитать по теме можно на MDN.
В качестве эталонной будет принята запись номера вида +7 (123) 123-45-67 .
Найти все телефонные номера на странице можно таким способом:
Метод match() вернёт и запишет в переменную phoneNumbers массив (объект типа Array ) со всеми найденными на странице номерами.
Дисклеймер. Виденное выше регулярное выражение может вызвать сильное чувство боли в глазах у неподготовленного читателя. Если вы не очень знакомы с регулярками, автор всё-таки советует для начала проработать несколько первых глав учебника на LearnJavascript.
Разберём это выражение:
(\+7|8) | +7 (123) 123-45-67 На практике встречается начало и с 8 , и с +7 . Напомню: | означает или. То есть, на данной позиции паттерна может стоять любой из вариантов, разделённых | . Также важно не забыть поставить скобки :)) |
[\s(]*\d<3>[)\s]* | +7 (123) 123-45-67 |
[\s(]* | +7 ( 123) 123-45-67 То есть, фактически, эти части паттерна распознают первые три цифры после кода страны, причём как взятые в скобки, так и без (квантификатор * синонимичен <0,>и означает «либо ноль, либо сколько угодно»). Также напомню: \d stands for символьная группа всех цифр (всё равно что 1 ), \s — группа всех пробельных символов. |
\d<3>[\s-]?\d<2>[\s-]?\d | +7 (123) 123-45-67 |
[\s-]? | +7 (123) 123 — 45 — 67 Данная часть паттерна распознаёт последние 7 цифр номера. Они могут быть разделены дефисами, пробелами или вообще ничем. Наверное, уже нет смысла пояснять, что цифра, взятая в фигурные скобки <> , означает точное количество повторений данного символа/группы в шаблоне. |
Ну хорошо, найти все номера получилось. К сожалению, задача этим не исчерпывается. Как же взять и заменить все вхождения разом?
Здесь поможет метод replace() . Если у регулярного выражения указан флаг ‘g’ (второй аргумент конструктора), то replace() заменит все вхождения на то, что указано. Например, задача замены всех повторяющихся пробелов в тексте на одинарные решается таким простым способом:
На всякий: /\s<1,>/g — это краткая запись для new RegExp(‘\s+’, ‘g’) . Также вместо <1,>можно писать просто + .
Но ведь у нас задача сложнее: нельзя же заменить разные номера телефонов на один! Тут самое время вспомнить о скобочных группах.
Скобочная группа — термин из теории регулярных выражений. Технически это просто часть паттерна, взятая в скобки. Но к любой такой группе можно обратиться по индексу.
К счастью, replace() поддерживает работу с группами. Достаточно написать в шаблоне замены (второй параметр) $ <номер_группы>( $1 или $5 ), и функция заменит эту конструкцию на содержимое скобочной группы.
То была идея, а теперь реализация:
В результате будет выведен аккуратный, каноничный телефонный номер. Работает!
Теперь, чтобы заменить все найденные номера телефонов на единообразные, добавим флаг g :
Усложним шаблон функции replace() , чтобы номер телефона был кликабельным (ссылка с префиксом tel: ):
То есть, для корректной работы ссылки нужно в её коде выписать все цифры номера подряд — как раз самый неудобный для чтения человеком вариант.
Источник
Номера телефонов в формате Excel
Форматирование телефонных номеров в Excel (Содержание)
- Формат телефонных номеров в Excel
- Как отформатировать телефонные номера в Excel?
Формат телефонных номеров в Excel
Возможно форматирование телефонных номеров в Excel. Это небольшая, но очень инновационная функция в Excel. В каждой стране свой код страны и формат написания телефонных номеров. В некоторых номерах номера телефонов разделены пробелами, в некоторых разрешены скобки для кода страны, в некоторых разница в длине номера, а в некоторых ставятся пробелы после кода страны, а остаток номера телефона следует последовательности.
Форматирование телефонных номеров может быть выполнено путем доступа к ячейкам « Формат» в главном меню в раскрывающемся списке « Формат ».
Как отформатировать телефонные номера в Excel?
Форматирование телефонных номеров в Excel очень просто и удобно. Давайте разберемся с разными методами на нескольких примерах.
Вы можете скачать этот шаблон номера телефона формата Excel здесь — Формат номера телефона формата Excel
Форматирование телефонных номеров в Excel — Пример № 1
Давайте рассмотрим несколько случайных телефонных номеров для их форматирования. У нас есть номера телефонов длиной 10 символов, как показано ниже.
Теперь для форматирования телефонных номеров в Excel сначала выберите телефонные номера, затем перейдите в Главное меню и нажмите Формат, как показано ниже. Как только мы нажмем на «Формат», мы получим выпадающий список, в котором мы выберем « Формат ячеек», который расположен внизу списка, как показано на скриншоте ниже.
Как только мы нажмем на «Форматировать ячейки», мы получим диалоговое окно, которое содержит различные функции, связанные с форматированием ячейки, такие как «Число», «Выравнивание», «Шрифт», «Граница», «Заливка» и «Защита».
Поскольку наша задача состоит в том, чтобы отформатировать телефонные номера, мы перейдем на вкладку « Число » и выберем « Пользовательский параметр», как показано на скриншоте ниже.
Как мы видим и проверяем, прокручивая вверх и вниз поле Тип, нет предустановленного формата телефонных номеров. Поэтому для настройки телефонных номеров удалите уже заполненные номера или текст и введите свой собственный формат. Как здесь, мы удалили слово General из раздела type и добавили « +91 » в качестве кода страны Индии, затем «-» и затем 10 нулей, которые являются стандартными 10-значными числами.
Как только мы это сделаем, мы увидим, что в одну из выбранных ячеек с номером телефона мы также добавим «+ 91-» чуть выше к отформатированной структуре в качестве образца. Затем нажмите ОК, как показано ниже.
Как только мы нажмем кнопку ОК, мы увидим, что выбранные ячейки будут отформатированы в соответствии с типом, который мы исправили в поле Формат ячейки, как показано на снимке экрана ниже.
После того, как мы отформатировали несколько тестовых телефонных номеров, мы можем отформатировать любую ячейку, содержащую телефонные номера, в том же формате.
Форматирование телефонных номеров в Excel — пример № 2
Существует еще один способ форматирования телефонных номеров в Excel. Давайте рассмотрим те же наборы образца телефонного номера, которые мы видели в примере-1. Теперь для форматирования телефонных номеров сначала выберите данные, затем сделайте прямо на них. И выберите параметры форматирования ячеек, как показано на скриншоте ниже.
После этого мы получим диалоговое окно «Формат ячеек», как показано ниже.
Теперь перейдите к опции Custom вниз на вкладке Number . Там, где мы найдем поле типа, ниже находится список всех настроенных типов номеров, но не формат номера телефона. Для этого удалите / удалите текст или номера, присутствующие в поле ввода, здесь мы удалили слово «Общее», чтобы ввести новый настроенный формат номера телефона.
Здесь мы введем новый формат для номера телефона. Здесь мы разделили код страны с помощью скобок и разделили половину чисел на «-» на 3 части и нажмите «ОК», как показано ниже.
Как мы видим ниже, формат, который мы установили в ячейках формата для телефонных номеров, теперь отражается на выбранных данных.
После того, как наш формат установлен, мы можем использовать его где угодно, когда видим, что телефонные номера должны быть отформатированы.
Чтобы проверить, виден ли наш недавно созданный формат телефонных номеров в ячейках формата или нет, сделайте это в любом месте на листе и выберите параметры Формат ячеек в нижней части меню. После этого появится то же самое окно ячеек формата. Перейдите на вкладку Number и выберите Custom option. Прокрутите вниз, чтобы найти наш недавно созданный формат.
Как мы можем видеть на скриншоте ниже, мы обвели форматы телефонных номеров, которые мы создали в примере 1 и примере 2.
Таким образом, мы можем создавать различные типы форматов телефонных номеров и использовать их в соответствии с нашими требованиями.
Плюсы формата телефонных номеров в Excel
Для данных большого телефонного номера становится очень легко понять код страны и фактический номер телефона, если данные правильно структурированы. Мы можем классифицировать и сортировать телефонные номера разных стран по их коду.
То, что нужно запомнить
- Всегда выбирайте данные перед форматированием телефонных номеров в Excel.
- Каждая страна и регион следуют своему собственному способу написания телефонных номеров. Чтобы отсортировать числа в соответствии с нашим требуемым форматом, сначала поймите значение системы счисления другой страны. Например, если вы форматируете американские телефонные номера, их телефонные номера начинаются с +1 и следуют за правильными 10 цифрами телефонного номера. Аналогичным образом, другие страны также следуют такой последовательности.
- В основном номера телефонов разных стран могут иметь разные номера. Перед применением любого формата к телефонным номерам сначала рассортируйте номер по длине. Благодаря этому мы можем избежать неправильного формата тех номеров, которые могут не подойти.
Рекомендуемые статьи
Это руководство по форматированию телефонных номеров в Excel. Здесь мы обсудили методы и Как отформатировать телефонные номера в Excel вместе с практическими примерами и загружаемым шаблоном Excel. Вы также можете просмотреть наши другие предлагаемые статьи —
- Формат Painter в Excel
- Руководство по Excel Числовой формат в Excel
- Как сделать автоформатирование в Excel?
- Как отделить текст в Excel?
Источник
Как привести телефонные номера к единому формату?
Как это сделать?
В качестве примера, возьмем номер телефона в виде «9264177054», нам нужно добавить код страны и преобразовать этот номер к виду +7 (926) 417-70-54. Как это сделать? Очень просто!
Для того чтобы создать свой формат данных, переведите курсор в ячейку, к которой вы хотите применить пользовательский формат, и вызовите диалоговое окно Формат ячеек.
Для вызова этого окна используйте сочетание клавиш «Ctrl+1» или нажмите правую клавишу мышки и в контекстном меню выберите пункт «Формат ячеек. «:
В открывшемся окне, во вкладке «Число» выберите пункт «все форматы». В появившееся справа поле Тип: введите маску нужного Вам формата. В нашем примере это будет: +7″ «(#)» «000-00-00. Обратите внимание, что в окошке «Образец» данные поменяли свой вид. Если вас устраивает такой вид данных нажмите «Оk». Данные в указанной ячейке примут соответствующий вид +7 (926) 417-70-54.
Теперь ваш формат сохранен в Excel и его можно использовать для форматирования. Выделите ячейки, к которым надо применить пользовательский формат, и вызовите диалоговое окно Формат ячеек. В списке форматов найдите свой (он будет последним), выделите его и нажмите «Оk».
Как это работает?
На самом деле все очень просто. Excel использует несколько спецсимволов в масках форматов:
0 (ноль) — один обязательный разряд, т.е. это место в маске формата будет заполнено цифрой из числа, которое пользователь введет в ячейку. Если для этого разряда нет числа, то будет выведен ноль. Например, если к числу 23 применить маску 000, то получится 023, а если к дробному числу 23,032016 применить маску 00,000 — получится 23,032.
# (решетка) — один необязательный разряд, т.е. если для него нет числа, то ничего не выводится.
[] — в квадратных скобках, перед маской формата, указывает цвет шрифта. Разрешено использовать следующие цвета: черный, белый, красный, синий, зеленый, жёлтый, голубой.
«» — любой пользовательский текст (млн, уп., м и тому подобные) или любые символы (например, пробелы) — надо обязательно заключать в кавычки.
Источник