Below are all the currently supported constraints. If you need more you can create your own Custom validators as well.
propertyName = {// The field under validation must be yes, on, 1, or true. This is useful for validating "Terms of Service" acceptance.accepted : any value,​// The field must be alphanumeric ONLYalpha : any value,​// discrete math modifiersdiscrete : (gt,gte,lt,lte,eq,neq):value​// value in listinList : list,​// max valuemax : value,​// Validation method to use in the target object must return boolean accept the incoming value and target objectmethod : methodName,​// min valuemin : value,​// range is a range of values the property value should exist inrange : eg: 1..10 or 5..-5,​// regex validationregex : valid no case regex​// required field or not, includes null valuesrequired : boolean [false],​// The field under validation must be present and not empty if the `anotherfield` field is equal to the passed `value`.requiredIf : {anotherfield:value, anotherfield:value}​// The field under validation must be present and not empty unless the `anotherfield` field is equal to the passedrequiredUnless : {anotherfield:value, anotherfield:value}​// same as but with no casesameAsNoCase : propertyName​// same as another propertysameAs : propertyName​// size or length of the value which can be a (struct,string,array,query)size : numeric or range, eg: 10 or 6..8​// specific type constraint, one in the list.type : (alpha,array,binary,boolean,component,creditcard,date,email,eurodate,float,GUID,integer,ipaddress,json,numeric,query,ssn,string,struct,telephone,url,usdate,UUID,xml,zipcode),​// UDF to use for validation, must return boolean accept the incoming value and target object, validate(value,target):booleanudf = variables.UDF or this.UDF or a closure.​// Check if a column is unique in the databaseunique = {table : The table name,column : The column to check, defaults to the property field in check}​// Custom validator, must implement coldbox.system.validation.validators.IValidatorvalidator : path or wirebox id, example: 'mypath.MyValidator' or 'id:MyValidator'}
The field must be yes, on, 1, or true. This is useful for validating "Terms of Service" acceptance.
terms = { accepted = true }
The field must be alphabetical ONLY
terms = { alpha = true }
The field must pass certain discrete math operations using the format: operator:value
gt
- Greater than the value
gte
- Greater than or equal to the value
lt
- Less than the value
lte
- Less than or equal to the value
eq
- Equal to the value
neq
- Not equal to the value
myField = { discrete = "gt:4" }myField = { discrete = "eq:luis" }myField = { discrete = "lte:1" }
The field must be in the included list
myField = { inList = "red,green,blue" }
The field must be less than or equal to the defined value
myField = { max = 25 }
The methodName
will be called on the target object and it will pass in validationData and targetValue. It must return a boolean response: true = pass, false = fail.
myField = { method = "methodName" }​function methodName( validationData, targetValue ){return true;}
The field must be greater than or equal to the defined value
myField = { min = 8 }
The field must be within the range values and the validation data must follow the range pattern: min..max
myField = { range = "1..5" }myField = { range = "5..-5" }
The field must pass the regular expression match with no case sensitivity
myField = { regex = "^(sick|vacation|disability)$" }
The field must have some type of value and not null.
myField = { required=true }myField = { required=false }
the field under validation must be present and not empty if the anotherfield
field is equal to the passed value
.
myField = {requiredIf = {field2 = "test",field3 = "hello"}}
The field under validation must be present and not empty unless the anotherfield
field is equal to the passed
myField = {requiredUnless = {field2 = "test",field3 = "hello"}}
The field must be the same as another field with no case sensitivity
myField = { sameAs = "otherField" }
The field must be the same as another field with case sensitivity
myField = { sameAs = "otherField" }
The field value size must be within the range values and the validation data must follow the range pattern: min..max.
Value can be a (struct,string,array,query)
myField = { size : 10 }myFiedl = { size : "8..20" }
One of the most versatile validators. It can test if the value is of the following specific types:
alpha
array
binary
boolean
component
creditcard
date
eurodate
float
GUID
integer
ipaddress
json
numeric
query
ssn
string
struct
telephone
url
usdate
UUID
xml
zipcode
myField = { type : "float" }
The field value will be passed to the declared closure/lambda to use for validation, must return boolean accept the incoming value and target object, validate(value,target):boolean
myField = { udf = function( value, target ) { return true; } }myField = { udf = (value,target) => true }
The field must be a unique value in a specific database table. The validation data is a struct with the following keys:
table
: The name of the table to check
column
: The column to check, defaults to the property field in check
myField = { unique = { table : "users", column : "username" } }
The field value will be passed to the validator CFC to be used for validation. Please see Custom Validators​
myField = { validator = "[email protected]" }