https://github.com/dvx/fonz.js
A node library that accurately validates phone numbers.
https://github.com/dvx/fonz.js
Last synced: 11 months ago
JSON representation
A node library that accurately validates phone numbers.
- Host: GitHub
- URL: https://github.com/dvx/fonz.js
- Owner: dvx
- License: mit
- Created: 2017-04-25T03:14:17.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2017-04-30T19:03:51.000Z (about 9 years ago)
- Last Synced: 2024-10-05T17:48:21.006Z (over 1 year ago)
- Language: JavaScript
- Size: 10.7 KB
- Stars: 30
- Watchers: 2
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
fonz.js
=========
[](https://travis-ci.org/dvx/fonz.js)
A node library that accurately validates phone numbers. It tries its best to abide by NANPA standards, but international numbers are not yet supported.
### Why fonz.js?
Fonz.js validates whether or not an input is a valid North American phone number according to the [North American Numbering Plan Administration](https://www.nationalnanpa.com/index.html). It verifies area codes, exchange codes, and station codes. To do this verification, all non-numeric characters are stripped. In some cases, results are better than Google's libphonenumber. For example, the following (correctly) do not pass validation using fonz.js:
- 310-911-1234
- 770-555-0150
- 949-411-0110
- 770-555-1212
Other validators incorrectly mark them as valid. To read more about how and why fonz.js was written, check out the blog post [here](https://dvt.name/2017/04/25/fonz-js-a-better-phone-verification-library/).
## Installation
`npm install fonz.js`
## Usage
var fonz = require('fonz.js');
if (fonz.validate('123-456-7890')) {
// this will fail validation as 123 is an invalid area code
}
Non-numeric characters are stripped:
// this is fine!
if (fonz.validate('xyz-4-0-4-|-4-5-6-!-7-8-9-0-abc-')) {
// this is a valid number!
}
Leading with a the valid country code of `1` is perfectly acceptable:
if (fonz.validate(13104439021)) {
// this is a valid number!
}
The `validate()` function will always return `true` or `false`.
## Tests
`npm test`
## Contributing
Feel free to contribute! Bug fixes or new features are always welcome.