Recently, I have needed to take a number string and format it to a phone number. This was a PITA in PHP, fortunately, Rails includes some methods that will make the formatting of phone numbers much easier.
# number_to_phone(number, options = {})
# Formats a number into a US phone number (e.g., (555) 123-9876).
# You can customize the format in the options hash.
#
# Options
#
# :area_code - Adds parentheses around the area code.
# :delimiter - Specifies the delimiter to use (defaults to "-").
# :extension - Specifies an extension to add to the end of the generated number.
# :country_code - Sets the country code for the phone number.
# returns => 123-555-1234
number_to_phone(1235551234)
# returns => (123) 555-1234
number_to_phone(1235551234, :area_code => true)
# returns => 123 555 1234
number_to_phone(1235551234, :delimiter => " ")
# returns => (123) 555-1234 x 555
number_to_phone(1235551234, :area_code => true, :extension => 555)
# returns => +1-123-555-1234
number_to_phone(1235551234, :country_code => 1)
# returns => +1.123.555.1234 x 1343
number_to_phone(1235551234, :country_code => 1, :extension => 1343, :delimiter => ".")
# Formats a number into a US phone number (e.g., (555) 123-9876).
# You can customize the format in the options hash.
#
# Options
#
# :area_code - Adds parentheses around the area code.
# :delimiter - Specifies the delimiter to use (defaults to "-").
# :extension - Specifies an extension to add to the end of the generated number.
# :country_code - Sets the country code for the phone number.
# returns => 123-555-1234
number_to_phone(1235551234)
# returns => (123) 555-1234
number_to_phone(1235551234, :area_code => true)
# returns => 123 555 1234
number_to_phone(1235551234, :delimiter => " ")
# returns => (123) 555-1234 x 555
number_to_phone(1235551234, :area_code => true, :extension => 555)
# returns => +1-123-555-1234
number_to_phone(1235551234, :country_code => 1)
# returns => +1.123.555.1234 x 1343
number_to_phone(1235551234, :country_code => 1, :extension => 1343, :delimiter => ".")
Want to see it in action?