Как отформатировать этот международный телефонный номер в направляющих?

Сохраните Базу данных нормализованной, ПОКА Вы не обнаружили узкое место. Затем только после того, как тщательное профилирование должно Вы денормализовывать.

В большинстве экземпляров, имея хороший закрывающий набор индексов и актуальной статистики решит большую часть производительности и блокирующихся проблем без любой денормализации.

Используя единственную таблицу мог привести к худшей производительности, если существуют записи, а также чтения против нее.

9
задан jdl 25 October 2009 в 17:00
поделиться

2 ответа

Вы можете использовать number_to_phone (number, options = {}) метод из ActionView :: Helpers :: NumberHelper

Однако в документации указывается, что этот метод форматирует число в номер телефона в США (например, (555) 123-9876).

Вместо этого вы можете использовать этот патч , который добавляет возможность группировки номеров:

:groupings     - Specifies alternate groupings 
(must specify 3-element array; defaults to [3, 3, 4])

Итак, в вашем случае вы должны позвонить:

number_to_phone('0541754301', :groupings => [4, 3, 3], :delimiter => "-") 

, чтобы произвести:

0541-754-301

20
ответ дан 4 December 2019 в 06:14
поделиться

Вы можете использовать регулярное выражение для переформатирования строки. Для приведенного вами примера:

"0541754301".sub(/(\d{4})(\d{3})(\d{3})/, "\\1-\\2-\\3") # returns: "0541-754-301"
9
ответ дан 4 December 2019 в 06:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: