Skip to content

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.