Git Product home page Git Product logo

node-phone's Introduction

What is node-phone?

node-phone is used to normalize the mobile phone number into a E.164 format.

The common problem is user normally input the phone number in this way:

`(817) 569-8900` or
`817569-8900` or
`1(817) 569-8900` or
`+1(817) 569-8900` or ...

What we want is always:

+18175698900

##FAQ (1.x branch)

  1. Does node-phone do any phone validation?

    Yes: If you provide the 2nd parameter (country), and the phone number do not start with + sign.

    phone will validate phone_number_lengths and mobile_begin_with

  2. Why some of the number is valid, but return null? This npm is used to validate a mobile phone number for sending the SMS. So, we try to match all possible rule, such as area code, number prefix, etc. to test if it is a mobile phone number. However, some countries, like USA, we can only check if it is a valid AREA CODE, there is no mobile phone prefix.

    For UK, we know that mobile phone number is always start with 7, in this case, this npm will be more helpful.

  3. Why do you make this?

    Because we need to normalize the phone number for SMS notification for mobile phone only.

We don't validate if the number is mobile or not.

##FAQ (0.0.x branch)

  1. Does node-phone do any phone validation?

    Yes: If you provide the 2nd parameter (country), and the phone number do not start with + sign.

    phone will validate phone_number_lengths and validation_begin_with

    No: If the phone number start with + sign, even you pass the country.

    phone will simply remove all non digit and return +XXXXXXXX to you.

  2. Why some of the number is valid, but return null? This npm is used to validate a mobile phone number for sending the SMS. So, we try to match all possible rule, such as area code, number prefix, etc. to test if it is a mobile phone number. However, some countries, like USA, we can only check if it is a valid AREA CODE, there is no mobile phone prefix.

    For UK, we know that mobile phone number is always start with 7, in this case, this npm will be more helpful.

  3. Why do you make this?

    Because we need to normalize the phone number for SMS notification for mobile phone only.

We don't validate if the number is mobile or not.

Install

npm install phone

Usage (1.x branch)

var phone = require('phone');
phone('+852 6569-8900'); // return ['+85265698900', 'HKG']
phone('(817) 569-8900'); // return ['+18175698900, 'USA']
phone('(817) 569-8900', ''); // return ['+18175698900, 'USA']
phone('(817) 569-8900', 'USA'); // return ['+18175698900', 'USA']
phone('(817) 569-8900', 'HKG'); // return []
phone('+1(817) 569-8900', 'HKG'); // return [], as it is not a valid HKG mobile phone number
phone('+1(817) 569-8900', ''); // return ['+18175698900', 'USA']
phone('(817) 569-8900', ''); // return ['+18175698900', 'USA']
phone('6123-6123', ''); // return [], as default country is USA
phone('6123-6123', 'HKG'); // return ['+85261236123', 'HKG']

Usage (0.0.x branch)

var phone = require('phone');

phone('(817) 569-8900', ''); // return +18175698900
phone('(817) 569-8900', 'USA'); // return +18175698900
phone('(817) 569-8900', 'HKG'); // return null
phone('+1(817) 569-8900', 'HKG'); // return +18175698900
phone('+1(817) 569-8900', ''); // return +18175698900
phone('(817) 569-8900', ''); // return +18175698900
phone('6123-6123', ''); // return null, as default country is USA
phone('6123-6123', 'HKG'); // return +85261236123

Test

npm test

Help

We try to google for many results, but none of package can fit our need. If you know that our rule is wrong, or can add more validation to make this npm more accurate. Please open an issue and let us know.

Change Log

  • 1.0.4 Support more countries with mobile prefix

  • 1.0.0 NOT compatible with the 0.0.x branch

    Major changes:

    1. phone will return array with formatted phone and iso3166 alpha3.
    2. If not valid, will return empty array instead of null.
    3. If country is passed, phone will do validation on the phone number against the country. If they are not match, phone will return empty array instead of the formatted E.164 phone.
  • 0.0.6 Added France mobile prefix 7, updated USA, Canada area code.

  • 0.0.5 Performance tuning, updated Iceland mobile format to 7 digits only.

  • 0.0.4 Added US, CA area code to make it more accurate.

License

MIT

node-phone's People

Contributors

teddychan avatar gedex avatar clark0x avatar jonlil avatar sudothinker avatar aftership-admin avatar kode4food avatar julien-leroy avatar

Watchers

James Cloos avatar Ali Halabyah avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.