Documentation / zerotal / validator / PasswordRule
Class: PasswordRule
Defined in: packages/validator/src/FieldRule.ts:670
Validates password strength. Chains onto StringRule.
Example
password: rules.password().min(8).mixedCase().numbers().symbols()
Extends
Constructors
Constructor
new PasswordRule():
PasswordRule
Defined in: packages/validator/src/FieldRule.ts:673
Returns
PasswordRule
Overrides
FieldRule.constructor
Properties
_def
readonly_def:FieldRuleDefinition&object
Defined in: packages/validator/src/FieldRule.ts:671
Type Declaration
type
type:
"string"
Overrides
Methods
required()
required(
message?):this
Defined in: packages/validator/src/FieldRule.ts:36
Mark this field as required (the default). Useful for readability, for re-asserting
after .optional(), or to attach a custom "is required" message:
rule.string().required("Please enter your name").min(2)
Parameters
message?
string
Returns
this
Inherited from
optional()
optional():
this
Defined in: packages/validator/src/FieldRule.ts:42
Returns
this
Inherited from
nullable()
nullable():
this
Defined in: packages/validator/src/FieldRule.ts:47
Returns
this
Inherited from
default()
default(
value):this
Defined in: packages/validator/src/FieldRule.ts:52
Parameters
value
unknown
Returns
this
Inherited from
sometimes()
sometimes():
this
Defined in: packages/validator/src/FieldRule.ts:66
Only run this field's rules if the field is present in the input. Absent fields are silently skipped and excluded from the output. Use for optional PATCH fields that should only be validated when provided.
Returns
this
Example
bio: rules.string().sometimes().max(500)
Inherited from
requiredIf()
requiredIf(
fieldOrFn,value?):this
Defined in: packages/validator/src/FieldRule.ts:79
Make this field required only when another field equals a specific value.
Parameters
fieldOrFn
string | ((input) => boolean)
value?
unknown
Returns
this
Example
address: rules.string().requiredIf('hasShipping', true)
address: rules.string().requiredIf(input => input.method === 'pickup')
Inherited from
requiredUnless()
requiredUnless(
fieldOrFn,value?):this
Defined in: packages/validator/src/FieldRule.ts:98
Make this field required unless another field equals a specific value.
Parameters
fieldOrFn
string | ((input) => boolean)
value?
unknown
Returns
this
Example
phone: rules.string().requiredUnless('contactMethod', 'email')
Inherited from
accepted()
accepted(
message?):this
Defined in: packages/validator/src/FieldRule.ts:118
The value must be truthy: true, 1, '1', 'yes', 'on', 'true'.
Use for "agree to terms" checkboxes.
Parameters
message?
string
Returns
this
Example
terms: rules.boolean().accepted()
Inherited from
declined()
declined(
message?):this
Defined in: packages/validator/src/FieldRule.ts:129
The value must be falsy: false, 0, '0', 'no', 'off', 'false'.
Parameters
message?
string
Returns
this
Example
newsletter: rules.boolean().declined()
Inherited from
custom()
custom(
fn,message?):this
Defined in: packages/validator/src/FieldRule.ts:144
Run a custom synchronous or asynchronous validation function.
Return true to pass, false for a generic error, or a string as the error message.
Parameters
fn
CustomFn
message?
string
Returns
this
Example
username: rules.string().custom(async (value) => {
const taken = await Username.isTaken(value as string);
return taken ? 'This username is already taken.' : true;
})
Inherited from
requiredWith()
requiredWith(
fields):this
Defined in: packages/validator/src/FieldRule.ts:157
This field is required when ANY of the listed fields are present in input.
Parameters
fields
string[]
Returns
this
Example
cardCvv: rules.string().requiredWith(['cardNumber', 'cardExpiry'])
Inherited from
requiredWithout()
requiredWithout(
fields):this
Defined in: packages/validator/src/FieldRule.ts:169
This field is required when ANY of the listed fields are absent from input.
Parameters
fields
string[]
Returns
this
Example
email: rules.string().requiredWithout(['phone'])
Inherited from
requiredWithAll()
requiredWithAll(
fields):this
Defined in: packages/validator/src/FieldRule.ts:178
This field is required when ALL of the listed fields are present.
Parameters
fields
string[]
Returns
this
Inherited from
requiredWithoutAll()
requiredWithoutAll(
fields):this
Defined in: packages/validator/src/FieldRule.ts:187
This field is required when ALL of the listed fields are absent.
Parameters
fields
string[]
Returns
this
Inherited from
prohibitedIf()
prohibitedIf(
field,value):this
Defined in: packages/validator/src/FieldRule.ts:199
This field must be absent when another field equals the given value.
Parameters
field
string
value
unknown
Returns
this
Example
adminCode: rules.string().prohibitedIf('role', 'guest')
Inherited from
prohibitedUnless()
prohibitedUnless(
field,value):this
Defined in: packages/validator/src/FieldRule.ts:210
This field must be absent unless another field equals the given value.
Parameters
field
string
value
unknown
Returns
this
Example
discount: rules.number().prohibitedUnless('role', 'admin')
Inherited from
bail()
bail():
this
Defined in: packages/validator/src/FieldRule.ts:222
Stop validating this field after the first failing rule.
Without bail(), all rules are checked and all errors collected.
Returns
this
Example
email: rules.string().email().unique('users', 'email').bail()
Inherited from
min()
min(
length,message?):this
Defined in: packages/validator/src/FieldRule.ts:687
Minimum length (default: 8).
Parameters
length
number
message?
string
Returns
this
mixedCase()
mixedCase(
message?):this
Defined in: packages/validator/src/FieldRule.ts:695
Must contain at least one uppercase and one lowercase letter.
Parameters
message?
string
Returns
this
numbers()
numbers(
message?):this
Defined in: packages/validator/src/FieldRule.ts:701
Must contain at least one number (0-9).
Parameters
message?
string
Returns
this
symbols()
symbols(
message?):this
Defined in: packages/validator/src/FieldRule.ts:707
Must contain at least one symbol (!@#$%^&* etc.).
Parameters
message?
string
Returns
this
uncompromised()
uncompromised(
message?):this
Defined in: packages/validator/src/FieldRule.ts:713
Must not contain spaces.
Parameters
message?
string
Returns
this
confirmed()
confirmed(
message?):this
Defined in: packages/validator/src/FieldRule.ts:719
Value must equal the {field}_confirmation input field.
Parameters
message?
string
Returns
this