views:

434

answers:

2

If I have an international phone number such as this:

0541754301

how can I format it to produce something like this:

0541-754-301

+3  A: 

You could use the number_to_phone(number, options = {}) method from ActionView::Helpers::NumberHelper

However, the docs point out that this method formats a number into a US phone number (e.g., (555) 123-9876).

Instead you could use this patch which adds the ability to provide number groupings:

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

So in your case you would call:

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

to produce:

0541-754-301

ski
A: 

You can use regular expression to reformat the string. For the example you have given:

"0541754301".sub(/(\d{4})(\d{3})(\d{3})/, "\\1-\\2-\\3") # returns: "0541-754-301"
akmathur