Phone Number Validator

About

This app is a US phone number-validating RubyGem.

It uses a complex regular expression to validate any United States phone number.

Regular Expression

This gem uses the following regular expression:

# US Phone Numbers
/^(?:(?:[2-9]11)|(?:(?:\+?1\s*(?:[.-]\s*)?)?(?:\(\s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\s*\)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\s*(?:[.-]\s*)?)?([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\s*(?:[.-]\s*)?([0-9]{4})(?:\s*(?:\x20+|#|x\.?|ext\.?|extension)\s*(\d+))?)$/i
# Regex Flags: i (ignore case)

Installing

$ gem install phone_number_validator

Install Required Gems/Dependencies

$ bundle install

Updating Required Gems/Dependencies

$ bundle update

Uninstalling

$ gem uninstall phone_number_validator

Testing

$ rake test

Usage

In command line

$ pnv "+1 (987) 654-3210 ext. 198842"

Output

=> true

In Ruby code

require 'phone_number_validator'

check_phone_number = PhoneNumberValidator.validate_phone_number('+1 (987) 654-3210 ext. 198842')

print check_phone_number

Output

=> true

Output Types

Output can be:

  • true (boolean: valid phone number)

  • false (boolean: invalid phone number)

  • nil (nil: no phone number entered)

  • void (void: no phone number arg provided)

Development

Run the following in development to make bin/pnv executable (Unix only):

chmod ugo+x bin/pnv