Validate over a predefined or custom regular expression.
Examples
validator('format', {
type: 'email',
allowNonTld: true
})
validator('format', {
allowBlank: true,
type: 'phone'
})
validator('format', {
type: 'url'
})
validator('format', {
regex: /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{4,8}$/,
message: 'Password must include at least one upper case letter, one lower case letter, and a number'
})
If you do not want to use the predefined regex for a specific type, you can do something like this
validator('format', {
type: 'email',
regex: /My Better Email Regexp/
})
This allows you to still keep the email error message but with your own custom regex.
-
options
-
defaultOptions
-
globalOptions
Build options hook. Merges default options into options object. This method gets called on init and is the ideal place to normalize your options. The presence validator is a good example to checkout
Returns:
-
type
-
value
-
options
Used by all pre-defined validators to build an error message that is present
in validators/message
or declared in your i18n solution.
If we extended our default messages to include uniqueUsername: '{username} already exists'
,
we can use this method to generate our error message.
validate(value, options) {
var exists = false;
get(options, 'description') = 'Username';
get(options, 'username') = value;
// check with server if username exists...
if(exists) {
return this.createErrorMessage('uniqueUsername', value, options);
}
return true;
}
If we input johndoe
and that username already exists, the returned message would be 'johndoe already exists'
.
Parameters:
Returns:
The generated message
Wrapper method to value
that passes the necessary parameters
Returns:
value
-
value
-
options
-
model
-
attribute
Parameters:
-
value
Any -
options
Object-
allowBlank
BooleanIf true, skips validation if the value is empty
-
type
StringCan be the one of the following options [
email
,phone
,url
] -
inverse
StringIf true, pass if the value doesn't match the given regex / type
-
regex
RegexThe regular expression to test against
-
allowNonTld
BooleanIf true, the predefined regular expression
email
allows non top-level domains -
minTldLength
NumberThe min length of the top-level domain on the predefined
email
regular expression
-
-
model
Object -
attribute
String