= 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