instance method number_to_phone

Ruby on Rails 3.1.12

Since v2.2.3

Available in: v2.2.3 v2.3.18 v3.0.20 v3.1.12 v3.2.22.5 v4.0.13 v4.1.16 v4.2.9 v5.2.8.1 v6.0.6 v6.1.7.10 v7.0.10 v7.1.6 v7.2.3 v8.0.4 v8.1.2

Signature

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.

Examples

number_to_phone(5551234)                                           # => 555-1234
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

Parameters

number req
options opt = {}
Source
# File actionpack/lib/action_view/helpers/number_helper.rb, line 52
      def number_to_phone(number, options = {})
        return unless number

        begin
          Float(number)
        rescue ArgumentError, TypeError
          raise InvalidNumberError, number
        end if options[:raise]

        number       = number.to_s.strip
        options      = options.symbolize_keys
        area_code    = options[:area_code]
        delimiter    = options[:delimiter] || "-"
        extension    = options[:extension]
        country_code = options[:country_code]

        if area_code
          number.gsub!(/(\d{1,3})(\d{3})(\d{4}$)/,"(\\1) \\2#{delimiter}\\3")
        else
          number.gsub!(/(\d{0,3})(\d{3})(\d{4})$/,"\\1#{delimiter}\\2#{delimiter}\\3")
          number.slice!(0, 1) if number.starts_with?('-')
        end

        str = []
        str << "+#{country_code}#{delimiter}" unless country_code.blank?
        str << number
        str << " x #{extension}" unless extension.blank?
        ERB::Util.html_escape(str.join)
      end

Defined in actionpack/lib/action_view/helpers/number_helper.rb line 52 · View on GitHub · Improve this page · Find usages on GitHub

Defined in ActionView::Helpers::NumberHelper

Type at least 2 characters to search.

↑↓ navigate · open · esc close