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.
Examples
number_to_phone(1235551234) # => 123-555-1234 number_to_phone(1235551234, :area_code => true) # => (123) 555-1234 number_to_phone(1235551234, :delimiter => " ") # => 123 555 1234 number_to_phone(1235551234, :area_code => true, :extension => 555) # => (123) 555-1234 x 555 number_to_phone(1235551234, :country_code => 1) # => +1-123-555-1234 number_to_phone(1235551234, :country_code => 1, :extension => 1343, :delimiter => ".") => +1.123.555.1234 x 1343
Source Code
# File action_view/helpers/number_helper.rb, line 26 def number_to_phone(number, options = {}) number = number.to_s.strip unless number.nil? options = options.stringify_keys area_code = options["area_code"] || nil delimiter = options["delimiter"] || "-" extension = options["extension"].to_s.strip || nil country_code = options["country_code"] || nil begin str = "" str << "+#{country_code}#{delimiter}" unless country_code.blank? str << if area_code number.gsub!(/([0-9]{1,3})([0-9]{3})([0-9]{4}$)/,"(\\1) \\2#{delimiter}\\3") else number.gsub!(/([0-9]{1,3})([0-9]{3})([0-9]{4})$/,"\\1#{delimiter}\\2#{delimiter}\\3") end str << " x #{extension}" unless extension.blank? str rescue number end end
<code/>and<pre/>for code samples.