See All Options

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.

Show:
buildOptions
(
  • options
  • defaultOptions
  • globalOptions
)
Object

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

Parameters:

Returns:

createErrorMessage
(
  • type
  • value
  • options
)
String

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) {
    const exists = false;
  
    // check with server if username exists...
  
    if(exists) {
      // The username key on the options object will be used to create the error message
      options.username = value;
      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:

  • type String

    The type of message template to use

  • value Mixed

    Current value being evaluated

  • options Object

    Validator built and processed options (used as the message string context)

Returns:

String:

The generated message

getValue () Mixed private

Wrapper method to value that passes the necessary parameters

Returns:

Mixed:

value

test
(
  • type
  • args
)
Object

Easily compose complicated validations by using this method to validate against other validators.

validate(value, options, ...args) {
    let result = this.test('presence', value, { presence: true }, ...args);
  
    if (!result.isValid) {
      return result.message;
    }
  
    // You can even test against your own custom validators
    result = this.test('my-validator', value, { foo: 'bar' }, ...args);
  
    if (!result.isValid) {
      return result.message;
    }
  
    result = this.test('number', value, { integer: true }, ...args);
  
    // You can easily override the error message by returning your own.
    if (!result.isValid) {
       return 'This value must be an integer!';
     }
  
    // Add custom logic...
  
    return true;
  }
  

Parameters:

  • type String

    The validator type (e.x. 'presence', 'length', etc.) The following types are unsupported: 'alias', 'belongs-to', 'dependent', 'has-many'

  • args ...args

    The arguments to pass through to the validator

Returns:

Object:

The test result object which will contain isValid and message. If the validator is async, then the return value will be a promise.

validate
(
  • value
  • options
  • model
  • attribute
)

Inherited from Base but overwritten in ember-validators/addon/format.js:17

Parameters:

  • value Any
  • options Object
    • allowBlank Boolean

      If true, skips validation if the value is empty

    • type String

      Can be the one of the following options [email, phone, url]

    • inverse String

      If true, pass if the value doesn't match the given regex / type

    • regex Regex

      The regular expression to test against

    • allowNonTld Boolean

      If true, the predefined regular expression email allows non top-level domains

    • minTldLength Number

      The min length of the top-level domain on the predefined email regular expression

  • model Object
  • attribute String
value
(
  • model
  • attribute
)

Used to retrieve the value to validate. This method gets called right before validate and the returned value gets passed into the validate method.

Parameters:

Returns:

The current value of model[attribute]

_testValidatorCache

Object private

Validators cache used by test api

_type

String private

Validator type

attribute

String

Attributed name of the model this validator is attached to

defaultOptions

Object

Default validation options for this specific attribute

errorMessages

Object

Error message object. Populated by validators/messages

globalOptions

Object

Global validation options for this model

isWarning

Boolean

model

Model

Model instance

options

Object

Options passed in to the validator when defined in the model