Strong Password
Enforce password strength — length plus uppercase, lowercase, number, and special character requirements
Strong Password
The strongPassword rule enforces a configurable password policy: a minimum length plus optional character-class requirements.
Configuration
| Config flag | Type | Description |
|---|---|---|
strongPassword | boolean | Enables the check with the default policy. |
validationSchema: {
password: { strongPassword: true },
}Default policy
strongPassword: true applies all requirements:
minLength: 8- at least one uppercase letter
- at least one lowercase letter
- at least one number
- at least one special character
Custom policy
Pass an options object to V.strongPassword to adjust the policy. Each requirement is a boolean switch, all defaulting to true:
import { V } from "formify-js";
// Same as `strongPassword: true`
V.strongPassword();
// 12 characters minimum, letters/digits only (no special characters required)
V.strongPassword({ minLength: 12, special: false });
// Only require a number on top of the default length
V.strongPassword({ uppercase: false, lowercase: false, special: false });| Option | Type | Default | Description |
|---|---|---|---|
minLength | number | 8 | Minimum password length. |
uppercase | boolean | true | Requires at least one uppercase letter. |
lowercase | boolean | true | Requires at least one lowercase letter. |
number | boolean | true | Requires at least one digit. |
special | boolean | true | Requires at least one special character. |
Set a requirement to false to drop it from the policy.
V builder
V.strongPassword() // default policy
V.strongPassword({ minLength: 12 }) // custom policy
V.strongPassword({ minLength: 12 }, "Password is too weak")Default message
The failure message is generated from the active policy, so the requirements it names always match your configuration — e.g. Password must be at least 8 characters long, with at least 1 uppercase letter, 1 lowercase letter, 1 number, and 1 special character.
Things to know
- Empty values pass unless
required: trueis also set. - This rule does not enforce a maximum length — add
maxLengthif you need one. - For granular checks (uppercase only, number only, …), use the individual rules:
containsUppercase,containsLowercase,containsNumber,containsSpecial. - For a live strength meter instead of a pass/fail check, see
passwordStrengthPluginin Plugins.