Text Predicates
Category: Case
Is all lowercase
This predicate checks whether the value contains only lowercase alphabetic characters. Digits and symbols may appear but must not be uppercase letters.
Example
"hello"→ ✔"Hello"→ ✘"hello123"→ ✔
Tip
Useful for enforcing naming conventions or validating normalized identifiers.
Is all uppercase
This predicate checks whether the value contains only uppercase alphabetic characters. Digits and symbols may appear but must not be lowercase letters.
Example
"HELLO"→ ✔"Hello"→ ✘"HELLO123"→ ✔
Is capitalized
True if the first character is uppercase and all remaining letters are lowercase.
Example
"London"→ ✔"london"→ ✘"LONDON"→ ✘
Note
Only alphabetic characters count toward capitalization rules.
Is mixed case
True if the value contains at least one uppercase and one lowercase character.
Example
"Hello"→ ✔"hELLO"→ ✔"HELLO"→ ✘"hello"→ ✘
Tip
Useful when detecting values that were not consistently formatted.
Category: Characters
Contains special characters
True if the value contains any character that is not a letter or a digit. This includes punctuation, symbols, emojis, and other non-alphanumeric characters.
Example
"hello!"→ ✔"abc#123"→ ✔"hello123"→ ✘
Note
Use this predicate when you want to ensure that a field contains only simple alphanumeric text.
Contains whitespace
True if the text contains one or more whitespace characters such as spaces, tabs, or line breaks.
Example
"hello world"→ ✔"hello\tworld"→ ✔"helloworld"→ ✘
Tip
Helpful when validating formats that must not contain spaces (e.g., usernames or codes).
Is alphabetic
True if the value contains only alphabetic characters (A–Z, a–z).
Digits, symbols, and punctuation invalidate the check.
Example
"John"→ ✔"John3"→ ✘"John-Doe"→ ✘
Is alphanumeric
True if the value contains only letters and digits.
No whitespace, punctuation, or symbols are allowed.
Example
"abc123"→ ✔"abc-123"→ ✘"hello world"→ ✘
Is numeric
True if the value consists entirely of numeric characters.
This predicate checks whether the text appears to be a number.
(Decimals or signs may or may not be permitted depending on the implementation.)
Example
"12345"→ ✔"12.34"→ ✘ (usually not considered numeric text)"123a"→ ✘
Note
This predicate evaluates the text, not the numeric type.
Use numeric predicates if you are working with actual integer or decimal columns.
Category: Cleanup
Is trimmed
True if the value has no leading or trailing whitespace. The predicate does not check internal spaces — only the beginning and end of the string.
Example
"hello"→ ✔" hello"→ ✘"hello "→ ✘" hello "→ ✘
Tip
Useful when ensuring that text is stored in a clean and normalized format.
Category: Containment
Contains
True if the text contains the specified substring. This comparison is case-sensitive.
Example
- Predicate: contains
"Admin" "System Administrator"→ ✔"system administrator"→ ✘"User"→ ✘
Contains (ignore case)
True if the text contains the specified substring, ignoring case differences.
Example
- Predicate: contains
"admin"(ignore case) "System Administrator"→ ✔"ADMIN PANEL"→ ✔"User"→ ✘
Starts with
True if the text begins with the specified substring. This comparison is case-sensitive.
Example
- Predicate: starts with
"Min" "Minyu"→ ✔"minyu"→ ✘
Starts with (ignore case)
True if the text begins with the specified substring, ignoring case.
Example
- Predicate: starts with
"min"(ignore case) "Minyu"→ ✔"MINIMAL"→ ✔"admin"→ ✘
Ends with
True if the text ends with the specified substring. This comparison is case-sensitive.
Example
- Predicate: ends with
"txt" "readme.txt"→ ✔"README.TXT"→ ✘
Ends with (ignore case)
True if the text ends with the specified substring, ignoring case differences.
Example
- Predicate: ends with
"txt"(ignore case) "readme.txt"→ ✔"README.TXT"→ ✔"file.doc"→ ✘
Category: Equality
Equals
True if the text exactly matches the specified value. This comparison is case-sensitive.
Example
- Predicate: equals
"Admin" "Admin"→ ✔"admin"→ ✘"Administrator"→ ✘
Equals (ignore case)
True if the text matches the specified value, ignoring differences in letter case.
Example
- Predicate: equals
"admin"(ignore case) "Admin"→ ✔"ADMIN"→ ✔"administrator"→ ✘
Category: Format
Is email
True if the value is a valid email address in the form local@domain.
This predicate validates the general structure of an email but does not verify whether the address actually exists.
Example
"user@example.com"→ ✔"user.name+tag@domain.co"→ ✔"not an email"→ ✘"missing@domain"→ ✘
Note
Validation rules may vary slightly, but the predicate ensures the overall shape is correct.
Is URL
True if the value is a valid URL, typically requiring a protocol such as http:// or https://.
Example
"https://example.com"→ ✔"http://minyu.dodone.tech/docs"→ ✔"www.example.com"→ ✘ (missing protocol)"not a url"→ ✘
Tip
Use this predicate when validating links pasted into text fields or user-provided reference URLs.
Category: Length
Has length equal to
True if the length of the text is exactly equal to the specified number of characters.
Example
- Text:
"abc"→ length = 3 - Parameter:
3 - Result: ✔
Has length longer than
True if the length of the text is greater than the specified number.
Example
- Text:
"abcdef" - Parameter:
3 - Result: ✔
Has length shorter than
True if the length of the text is less than the specified number.
Example
- Text:
"abc" - Parameter:
5 - Result: ✔
Tip
Useful for enforcing minimum or maximum length requirements in user input.
Category: Pattern
Matches pattern
True if the text matches the provided regular expression (regex).
This predicate allows advanced validation rules, such as enforcing formats, ID structures, or domain-specific patterns.
Example
- Pattern:
^[A-Z]{3}-\d{4}$ "ABC-1234"→ ✔"abc-1234"→ ✘"AB-1234"→ ✘
Tip
Use this for structured inputs like codes, booking references, or custom formats.
Category: Other
Is one of
True if the text matches one of the predefined allowed values.
This predicate is used when the field should only contain values from a specific, user-defined list.
Example
- Allowed values:
"Gold","Silver","Bronze" "Silver"→ ✔"Platinum"→ ✘
Tip
Useful when validating membership tiers, statuses, roles, or any controlled vocabulary.