Format phone number in Rails

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 => ".")

Want to see it in action?

3 comments

  1. Nice posting…thanks. Was wondering how to deal with extensions, and decided to google on a whim rather than look at the Rails documentation like I often do…glad I did! This is much more pleasantly readable! :)

  2. Nice posting…thanks. Was wondering how to deal with extensions, and decided to google on a whim rather than look at the Rails documentation like I often do…glad I did! This is much more pleasantly readable! :)

  3. We offer VIAGRA for lowest prices on the web.
    Discount VIAGRA Online is guaranteed!
    FREE shipping worldwide. Discount Viagra Online Discount Viagra Online
    Buy Discount VIAGRA Online http://www.bebo.com/PershenK
    Buy Discount Viagra – THE LOWEST Viagra PRICE GUARANTEED!
    Discount Viagra Online
    Buy Viagra online – Generic and Brand! http://boinc.umiacs.umd.edu/view_profile.php?userid=11268

Leave a comment