Метод 1: использование манипуляций со строками
Иногда самые простые решения являются лучшими. Методы работы со строками Ruby могут прийти на помощь, когда дело доходит до форматирования номера телефона. Вот пример:
def format_phone_number(number)
number.gsub!(/(\d{3})(\d{3})(\d{4})/, '(\1) \2-\3')
end
phone_number = '1234567890'
puts format_phone_number(phone_number) # Output: (123) 456-7890
В этом методе мы используем метод gsub!вместе с регулярным выражением, соответствующим шаблону номера телефона. Фиксируем группы цифр и заменяем их нужным форматом.
Метод 2: использование камня phony
Гем phony— мощный инструмент, специально разработанный для обработки телефонных номеров в Ruby. Он предоставляет широкий спектр параметров форматирования и поддерживает различные форматы, специфичные для конкретной страны. Вы можете установить его, добавив gem 'phony'в свой Gemfile или запустив gem install phonyна своем терминале. Вот пример:
require 'phony'
def format_phone_number(number)
Phony.formatted(number, format: :national, spaces: '-')
end
phone_number = '1234567890'
puts format_phone_number(phone_number) # Output: 123-456-7890
В этом методе мы используем метод formattedиз драгоценного камня phony, указывая желаемый формат как :nationalи используя дефисы в качестве разделители.
Метод 3: использование камня national_format
Еще один драгоценный камень, который может упростить форматирование номера телефона, — это national_format. Подобно драгоценному камню phony, он обеспечивает простой способ форматирования телефонных номеров. Установите его, добавив gem 'national_format'в свой Gemfile или запустив gem install national_formatна своем терминале. Вот пример:
require 'national_format'
def format_phone_number(number)
NationalFormat.format(number, :us)
end
phone_number = '1234567890'
puts format_phone_number(phone_number) # Output: (123) 456-7890
Здесь мы используем метод formatиз драгоценного камня national_format, указывая страну как :usдля форматирования США.
Метод 4: используйте собственный форматтер
Если вы предпочитаете более индивидуальный подход, вы можете создать собственное средство форматирования телефонных номеров, используя встроенные методы Ruby. Вот пример:
def format_phone_number(number)
"(#{number[0..2]}) #{number[3..5]}-#{number[6..9]}"
end
phone_number = '1234567890'
puts format_phone_number(phone_number) # Output: (123) 456-7890
В этом методе мы вручную извлекаем цифры из строки номера телефона и объединяем их в нужном формате.
Форматировать телефонные номера в Ruby очень просто, если в вашем наборе инструментов есть эти методы. Независимо от того, решите ли вы использовать манипуляции со строками, использовать специальные драгоценные камни, такие как phonyили national_format, или внедрить собственное решение, вы сможете форматировать телефонные номера как профессионал. Так что вперед, сделайте свои номера телефонов привлекательными и читабельными!
Удачного программирования и форматирования телефонных номеров в Ruby!