Wondering what’s next for npm?Check out our public roadmap! »


    0.0.1 • Public • Published

    License npm version js-standard-style

    Build Status Coverage Status Code Climate Issue Count


    This library is used to handle NANPA telephone numbers while at the same time gathering information about them.


    Add this library to your package.json configuration:

        "nanpa_tools": "latest"

    Using it

    Below you will find a few examples for the most common usage. More examples can be found in the tests.

    Import the module in your code

      var nanpa_tools = require('nanpa_tools');

    Figuring out if a given number is a NANPA number.

      if (nanpa_tools.isNanpa("13055556666")) {

    Getting information for a NANPA number

      var result = nanpa_tools.resolve("13055556666");

    If the number is a NANPA number, the result object will contain:

    • npa: Area code.
    • nxx: Exchange code.
    • num: Subscriber number.
    • countryCode: ISO2 code for the country.
    • countryName: Full country name (in English).
    • usStateCode: Only present for US numbers. 2-letter state code.
    • usStateName: Only present for US numbers. Full state name.
    • caProvinceCode: Only present for Canada numbers. 2-letter province code.
    • caProvinceName: Only present for Canada numbers. Full province name.
    • isTollFree: true if the given number is a Toll Free.
    • isPremium: true if the given number is a Premium Number.

    Detecting Intra- or Inter-State calls

      var result = nanpa_tools.resolveInterIntra("13055556666", "17866667777");

    The result object will contain:

    • number1: A result object like the one described above.
    • number2: A result object like the one described above.
    • isIntra: true if the call should be considered Intra-State. US calls only.
    • isInter: true if the call should be considered Inter-State. US calls only.


    This project uses standard npm scripts. Current tasks include:

    • test: Runs Mocha tests.
    • jsdoc: Runs JSDoc3.
    • eslint: Runs ESLint.
    • coverage: Runs the tests and then Instanbul to get a coverage report.
    • build: This is the default task, and will run all the other tasks.

    Running an npm task

    To run a task, just do:

    npm run build


    To contribute:

    • Make sure you open a concise and short pull request.
    • Throw in any needed unit tests to accomodate the new code or the changes involved.
    • Run npm run build and make sure everything is ok before submitting the pull request (make eslint happy).
    • Your code must comply with the Javascript Standard Style, ESLint should take care of that.


    The source code is released under Apache 2 License.

    Check LICENSE file for more information.


    npm i nanpa_tools

    DownloadsWeekly Downloads






    Last publish


    • avatar