Install
npm install password-validator
Usage
var passwordValidator = require('password-validator');
// Create a schema
var schema = new passwordValidator();
// Add properties to it
schema
.is().min(8) // Minimum length 8
.is().max(100) // Maximum length 100
.has().uppercase() // Must have uppercase letters
.has().lowercase() // Must have lowercase letters
.has().digits() // Must have digits
.has().not().spaces(); // Should not have spaces
.is().not().oneOf(['Passw0rd', 'Password123']) // Blacklist these values
// Validate against a password string
console.log(schema.validate('validPASS123'));
// => true
console.log(schema.validate('invalidPASS'));
// => false
// Get a full list of rules which failed
console.log(schema.validate('joke', { list: true }));
// => [ 'min', 'uppercase', 'digits' ]
Rules
Rules supported as of now are:
Rules | Descriptions |
---|---|
digits() | specifies password must include digits |
letters() | specifies password must include letters |
lowercase() | specifies password must include lowercase letters |
uppercase() | specifies password must include uppercase letters |
symbols() | specifies password must include symbols |
spaces() | specifies password must include spaces |
min(len) | specifies minimum length |
max(len) | specifies maximum length |
oneOf(list) | specifies the whitelisted values |
not([regex]) | inverts the result of validations applied next |
is() | inverts the effect of not() |
has([regex]) | inverts the effect of not() and applies a regex (optional) |
Options
The following options can be passed to validate
method:
list
- If set, validate method returns a list of rules which failed instead of true/false.
Resources
For APIs of other older versions, head to Wiki.