Adds validation methods to ActiveModel for validating phone numbers.
Ruby
Latest commit e63143e Jul 12, 2013 @travisjeffery support >= 1.9.3
Permalink
Failed to load latest commit information.
lib
test
.gitignore
.travis.yml
Gemfile
README.markdown add documention for the allow_blank option, and how to use multiple o… Nov 13, 2012
Rakefile
validates_phone_number.gemspec

README.markdown

Build Status

Validates Phone Number

validates_phone_number adds validation methods to ActiveModel for validating phone numbers.

Basic Usage

Given a User model with a phone number attribute of phone number that's a string, see if a given record has a valid phone number like so:

class Person < ActiveRecord::Base
  validates :mobile, :phone_number => true
end

By default, both 10 and 7 digit numbers are valid.

Options

Seven Digits

Example: 555-5555, 555.5555, 1234567, etc.

class Person < ActiveRecord::Base
  validates :mobile, :phone_number => {:seven_digits => true}
end

Ten Digits

Example: (555)-555-5555, 555.555.5555, 1234567890, etc.

class Person < ActiveRecord::Base
  validates :mobile, :phone_number => {:ten_digits => true}
end

Message

Set the message that's added to the errors collection by using the message option:

class Person < ActiveRecord::Base
  validates :mobile, :phone_number => {:message => "invalid and can only be attributable to human error"}
end

Format/Match by Regular Expression

You can specify that a number matches a regular expression by using the format option:

class Person < ActiveRecord::Base
  validates :mobile, :phone_number => {:format => /\d{3}-\d{3}-\d{4}/}
end

Allow Nil

class Person < ActiveRecord::Base
  validates :mobile, :phone_number => {:allow_nil => true}
end

Allow Blank

class Person < ActiveRecord::Base
  validates :mobile, :phone_number => {:allow_blank => true}
end

Multiple

class Person < ActiveRecord::Base
  validates :mobile, :phone_number => {:ten_digits => true, :seven_digits => true, :allow_blank => true, :message => "Phone number must be either seven or digits in length, or blank."}
end

Self-Promotion

Like validates_phone_number? Follow the project on GitHub.

You should follow travisjeffery on GitHub and Twitter too. Thanks!