0.0.1 • Published 8 years ago

str-mask v0.0.1

Weekly downloads
17
License
MIT
Repository
github
Last release
8 years ago

str-mask

Mask text by pattern

NPM version Build status

Note: This module works in browsers and Node.js >= 4.0

Installation

npm install str-mask

Usage

const mask = require('str-mask');

mask('9211234567', {mask: '+7 (999) 999-99-99'})
// { model: '9211234567',
//   viewValue: '+7 (921) 123-45-67',
//   isValid: true,
//   cursor: 18 }

mask('92112', {mask: '+7 (999) 999-99-99'})
// { model: '92112',
//   viewValue: '+7 (921) 12',
//   isValid: false,
//   cursor: 11 }

mask('92112', {mask: '+7 (999) 999-99-99', filler: '_'})
// { model: '92112',
//   viewValue: '+7 (921) 12_-__-__',
//   isValid: false,
//   cursor: 11 }

Special mask characters

CharacterDescription
9Any numbers
AAny alphanumeric character
*Any letter
UAny letter (All lower case character will be mapped to uppercase)
LAny letter (All upper case character will be mapped to lowercase)
\\Escape character, used to escape any of the special formatting characters.

API

mask(value, params)

  • value (String) - Masked value (any values convert to string)

  • params (Object)

    • mask (String) - mask
    • filler (String) - string for empty spaces. You can use one symbol pattern _ or string likes mask DD/MM/DDDD
    • escChar (String) - char for escaping. Default: \\
    • chars (Object ) - map of special chars. You can add extra chars or remove default if set <char>: null. Default:
'9': /\d/,
'A': /[a-zA-Z]/,
'*': /[a-zA-Z0-9]/,
'U': function(letter) {
    letter = letter.toUpperCase();

    if (/[a-zA-Z0-9]/.test(letter)) {
        return letter;
    }
},
'L': function(letter) {
    letter = letter.toLowerCase();

    if (/[a-zA-Z0-9]/.test(letter)) {
        return letter;
    }
}

--

mask.curry(params)

  • params - see mask params.

  • return (Function) - function, which gets value and returns result of masking

phoneMask = mask.curry({mask: '+7 (999) 999-99-99', filler: '_'})

phoneMask(+792112)
// { model: '92112',
//   viewValue: '+7 (921) 12_-__-__',
//   isValid: false,
//   cursor: 11 }

phoneMask(92112345)
// { model: '92112',
//   viewValue: '+7 (921) 123-45-__',
//   isValid: false,
//   cursor: 16 }

Tests

npm install
npm test

License

MIT