Skip to content

Fortified IDDocs

mv

mv reference and configuration shared across Fortified ID products.

Script extension for multi value validation and comparison.

All functions operating on multi values will convert supplied value(s) to multi value if not already (see mv.from(value))

In JavaScript multi values are represented as arrays.

Converts a value to a multi value if not already.

Handles the following types of input values:

  • arrays (returned as is)
  • json arrays (parsed to array)
  • single values of any types (added as first element to new array)

mv.from(value)

NameTypeDescription
valueanyThe value to convert to multi value
// Create multi value from single value string
mv.from('elem') // -> ['elem']
// Create multi value from json array
mv.from('["elem01", "elem02"]') // -> ['elem01', 'elem02']

Returns the length of the supplied multi value.

mv.length(value)

NameTypeDescription
valueanyThe multi value whose length is to be calculated and returned.
// Get multi value length of single value string
mv.length('elem') // -> 1
// Get multi value length of an array
mv.length(['elem01', 'elem02', 'elem03']) // -> 3
// Get multi value length of an json array
mv.length('["elem01", "elem02"]') // -> 2

Returns true if the supplied multi value contains the supplied expected value, possibly ignoring the case (if values are strings).

Note: This function works exactly like mv.containsAny but with support for only one expected value.

mv.contains(value, expected[, ignoreCase])

NameTypeDescription
valueanyThe multi value whose content is to be asserted.
expectedanyValue expected to be contained in value
ignoreCasebooleanFlag turning on string case insensitivity (default: false)
mv.contains(['elem01', 'elem02', 'elem03'], 'elem02') // true
mv.contains(['elem01', 'elem02', 'elem03'], 'elem04') // false
mv.contains(['elem01', 'elem02', 'elem03'], 'ELEM02', true) // true
mv.contains([7, 99, 845], 'unknown') // false
mv.contains([7, 99, 845], 7) // true

Returns true if the supplied multi value contains at least one of the supplied expected values, possibly ignoring the case (if values are strings).

mv.containsAny(value, expected[, expected, ...][, ignoreCase])

NameTypeDescription
valueanyThe multi value whose content is to be asserted.
expectedanyOne or more values expected to be contained in value
ignoreCasebooleanFlag turning on string case insensitivity (default: false)
mv.containsAny(['elem01', 'elem02', 'elem03'], 'elem02') // true
mv.containsAny(['elem01', 'elem02', 'elem03'], 'elem04') // false
mv.containsAny(['elem01', 'elem02', 'elem03'], 'elem04', 'elem02') // true

Returns true if the supplied multi value contains all of the supplied expected values, possibly ignoring the case (if values are strings).

mv.containsAll(value, expected[, expected, ...][, ignoreCase])

NameTypeDescription
valueanyThe multi value whose content is to be asserted.
expectedanyOne or more values expected to be contained in value
ignoreCasebooleanFlag turning on string case insensitivity (default: false)
mv.containsAll(['elem01', 'elem02', 'elem03'], 'elem02') // true
mv.containsAll(['elem01', 'elem02', 'elem03'], 'elem04') // false
mv.containsAll(['elem01', 'elem02', 'elem03'], 'elem04', 'elem02') // false
mv.containsAll(['elem01', 'elem02', 'elem03'], 'elem01', 'elem02') // true

Returns true if at least one value in the supplied multi value matches one or more of the supplied regex's.

Regex may be supplied as strings, regex-literals or RegExp objects.

Note: Case-insensitivity is controlled by regex flag ('i').

mv.matchAny(value, regex [,regex, ...])

NameTypeDescription
valueanyThe multi value whose content is to be matched.
expectedanyOne or more regex to match against value.
mv.matchAny(['elem01', 'elem02', 'elem03'], 'elem02', 'elem04') // true
mv.matchAny(['elem01', 'elem02', 'elem03'], /elem02/, /elem04/) // true
mv.matchAny(['elem01', 'elem02', 'elem03'], 'ELEM02') // false
mv.matchAny(['elem01', 'elem02', 'elem03'], /ELEM02/i) // true
mv.matchAny(['elem01', 'elem02', 'elem03'], /^elem[0-9]{,2}$/) // true

Returns true if the supplied multi values has exactly same content.

mv.equals(mv1, mv2)

NameTypeDescription
mv1anyThe multi value whose content is to be matched.
mv2anyOne or more regex to match against value.
mv.equals(['elem01'], ['elem01']) // true
mv.equals(['elem01'], ['elem02']) // false
mv.equals(['elem01', 'elem02'], ['elem01', 'elem02']) // true
mv.equals(['elem01', 'elem02'], ['elem01']) // false
mv.equals(['elem01', 'elem02'], ['elem02', 'elem01']) // false

Returns true if the supplied multi value is not null/undefined and is empty.

mv.isEmpty(value)

NameTypeDescription
valueanyThe multi value to assert
mv.isEmpty([]) // true
mv.isEmpty(['elem01']) // false
mv.isEmpty(null) // false

Returns true if the supplied multi value is not null/undefined and is not empty (has one or more elements).

mv.isNotEmpty(value)

NameTypeDescription
valueanyThe multi value to assert
mv.isNotEmpty(['elem01']) // true
mv.isNotEmpty([]) // false
mv.isNotEmpty(null) // false

Returns true if the supplied multi value is null/undefined or is empty.

mv.isNullOrEmpty(value)

NameTypeDescription
valueanyThe multi value to assert
mv.isNullOrEmpty([]) // true
mv.isNullOrEmpty(null) // true
mv.isNullOrEmpty(['elem01']) // false

Returns true if the supplied multi value is not null/undefined and is not empty (has one or more element).

mv.isNotNullOrEmpty(value)

NameTypeDescription
valueanyThe multi value to assert
mv.isNotNullOrEmpty(['elem01']) // true
mv.isNotNullOrEmpty(null) // false
mv.isNotNullOrEmpty([]) // false