Европейский телефон форматирования с рельсами - PullRequest
1 голос
/ 25 апреля 2011

С помощью направляющих я могу отформатировать номер в номер телефона США с помощью number_to_phone

Я использую европейский формат телефона, что означает, что я хочу сгруппировать номера в следующем формате, n - это переменная:

(n*x) xxx-xxx

Некоторые примеры

6365555796 => (6365) 555-796

665555796  => (665) 555-796

Как этого добиться с последними рельсами 3.0.7?

Ответы [ 3 ]

3 голосов
/ 25 апреля 2011

как насчет этого:

def to_phone(num)
   groups = num.to_s.scan(/(.*)(\d{3})(\d{3})/).flatten
   "(#{groups.shift}) #{groups.shift}-#{groups.shift}"
end


irb(main):053:0> to_phone 318273612
=> "(318) 273-612"
irb(main):054:0> to_phone 3182736122
=> "(3182) 736-122"
irb(main):055:0> to_phone 31827361221
=> "(31827) 361-221"

...

2 голосов
/ 25 апреля 2011

Я думаю, вы должны написать свой собственный метод для этого, в моих знаниях нет встроенного метода, и я думаю, что вы можете достичь желаемого, написав соответствующее регулярное выражение для этого.

вы пробовали validate_format_for с: там вы можете написать для него специальное выражение regualr [см. Это] http://ruby -forum.com / topic / 180192 для написания собственного помощника для него

проверьте этот драгоценный камень, вот что вам нужно http://github.com/floere/phony

0 голосов
/ 25 апреля 2011

Более быстрый подход:

def to_european_phone_format(number)
  "(#{number/10**6}) #{number/10**3%10**3}-#{number%10**3}"
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...