mask-any-number
TypeScript icon, indicating that this package has built-in type declarations

2.2.0 • Public • Published

📜 mask-any-number

A lightweight, flexible number-masking library — supports multiple mask patterns and automatically picks the best fit based on the input length.

npm version npm downloads license types

🔧 Installation

npm install mask-any-number

or

yarn add mask-any-number

🌍 Country Phone Masks (built-in)

import { maskNumber, countries } from 'mask-any-number';

// Germany 🇩🇪
maskNumber('493012345678', countries.find(country => country.iso2 === 'DE').masks); 
// "+49 30 1234 5678"

// Brazil 🇧🇷
maskNumber('5511998765432', countries.find(country => country.iso2 === 'BR').masks); 
// "+55 11 99876 5432"

// US 🇺🇸
maskNumber('1234567890', countries.find(country => country.iso2 === 'US').masks); 
// "(123) 456-7890"

🎨 Custom Masks

import { maskNumber } from 'mask-any-number';

// Basic usage
maskNumber('1234567890', ['000-000-0000']); // "123-456-7890"

// Multiple masks, chooses first that fits
maskNumber('12345', ['000-000', '00000']); // "12345"
maskNumber('123456', ['000-000', '00000']); // "123-456"

### Phone Numbers
// US: (XXX) XXX-XXXX
maskNumber('1234567890', ['(000) 000-0000']); // "(123) 456-7890"

// Europe (DE): +49 XX XXXX XXXX
maskNumber('493012345678', ['+49 00 0000 0000']); // "+49 30 1234 5678"

// China: +86 10 1234 5678
maskNumber('861012345678', ['+86 00 0000 0000']); // "+86 10 1234 5678"

⚙️ API

Parameter Type Description
value string Input numeric string to mask
masks string[] Array of mask patterns using 0 as digit placeholder

Return: string — formatted number according to the first mask that fits.

🔁 Visual Summary

Type Input Mask Output
US Phone 1234567890 (000) 000-0000 (123) 456-7890
EU Phone 493012345678 +49 00 0000 0000 +49 30 1234 5678
CN Phone 861012345678 +86 00 0000 0000 +86 10 1234 5678

🧪 Testing with Mock Data

const examples = [
    { value: '1234567890', masks: ['000-000-0000'] },
    { value: '31122025', masks: ['00/00/0000'] },
];

examples.forEach(({ value, masks }) => {
    console.log(maskNumber(value, masks));
});

💡 Tips

Use multiple masks to handle variable-length numbers.

Keep 0 as the digit placeholder; all other characters are treated as literals.

Ideal for phone numbers, dates, IDs, and other numeric inputs.

For local development:

Inside the library folder

npm run build

npm link

💡 Tips

Use multiple masks to handle variable-length numbers.

Keep 0 as the digit placeholder; all other characters are treated as literals.

Ideal for phone numbers, dates, IDs, and other numeric inputs.

For local development:

Inside the library folder

npm run build

npm link

npm link mask-any-number

⚠️ After the initial link, you only need to run npm run build when updating the library.

Gabriel Gabriel GitHub

🧾 License

MIT © 2025

Package Sidebar

Install

npm i mask-any-number

Weekly Downloads

172

Version

2.2.0

License

MIT

Unpacked Size

128 kB

Total Files

12

Last publish

Collaborators

  • gabrielrfmendes