Skip to content

Validation ​

You can use the following built-in or custom validation rules in the validation prop of <u-field>.
Multiple rules can be combined with |, and rule parameters are passed with :, multiple parameters separated by ,.

This is an example:

vue
<u-field name="username" validation="required|alpha|min:3|max:12" />

Custom Message ​

you can using validation-messages to custom validation message:

vue
<u-field
  name="username"
  validation="required"
  :validation-messages="{ required: 'custom required message' }"
></u-field>

Custom Validation Rule ​

This is an example of custom validation rule:

vue
<script setup lang="ts">
import { FieldNode } from "vue-uform";
function isfruit({ value }: FieldNode): boolean | string {
  if (value != "apple" && value != "banana") {
    return "this value is not apple or banana";
  }
  return true;
}
</script>
<template>
  <u-field validation="isfruit" :rules="{ isfruit }" v-slot="{ value, update }">
    <input f-model />
  </u-field>
</template>

Fisrt, you should to be using rules prop to register the rule, next use the rule in validation prop

TIP

You can use both the rules and validation-message props simultaneously.Their priority is such that validation-message takes precedence over the messages defined in rules.

Custom Rule with argments ​

You can set parameters on a custom rule, like this:

vue
<script setup lang="ts">
import { FieldNode } from "vue-uform";

// Custom validation rule with parameters
function minWords({ value }: FieldNode, min: number): boolean | string {
  const wordCount = String(value).trim().split(/\s+/).length;
  if (wordCount < min) {
    return `Please enter at least ${min} words.`;
  }
  return true;
}
</script>

<template>
  <u-form>
    <u-field
      name="bio"
      label="Short Bio"
      validation="min_words:5"
      :rules="{ min_words: minWords }"
      v-slot="{ value, update }"
    >
      <textarea f-model></textarea>
    </u-field>
  </u-form>
</template>

Built-in Validation Rules ​

required ​

Description

The field value must not be empty. Empty strings (""), null, undefined, and empty arrays are considered invalid.

Parameters None

Example

vue
<u-field name="email" validation="required" />

number ​

Description

The value must be a number or a string that can be parsed into a number.

Parameters None

Example

vue
<u-field name="age" validation="number" />

confirm ​

Description

The value must match the value of another field (commonly used for password confirmation).

Parameters

fieldName – the name of the field to compare with.

Example

vue
<u-field name="password" validation="required" />
<u-field name="confirmPassword" validation="confirm:password" />

accepted ​

Description

The field value must be true, "yes", "on", or "1" (commonly used for terms & conditions checkboxes).

Parameters

None

Example

vue
<u-field name="terms" validation="accepted" />

alpha ​

Description

The value may only contain alphabetic characters (A-Z, a-z).

Parameters

None

Example

vue
<u-field name="firstName" validation="alpha" />

alphanumeric ​

Description

The value may only contain letters and numbers.

Parameters

None

Example

vue
<u-field name="username" validation="alphanumeric" />

between ​

Description

The value must be between the specified minimum and maximum (numeric range).

Parameters

min,max – range boundaries.

Example

vue
<u-field name="age" validation="between:18,65" />

email ​

Description

The value must be a valid email address.

Parameters

None

Example

vue
<u-field name="email" validation="email" />

ends_with ​

Description

The value must end with one of the specified substrings.

Parameters

value1,value2,... – allowed endings.

Example

vue
<u-field name="domain" validation="ends_with:.com,.org" />

is ​

Description

The value must equal (==) the specified value.

Parameters

expectedValue

Example

vue
<u-field name="promoCode" validation="is:FREE100" />

length ​

Description The value’s length must be between the specified minimum and maximum.

Parameters

  • mix
  • max

Example

vue
<u-field name="password" validation="length:6,10" />

lowercase ​

Description

The value must be entirely lowercase letters.

Parameters None

Example

vue
<u-field name="slug" validation="lowercase" />

max ​

Description

The value must not be greater than the specified maximum numeric

Example

vue
<u-field name="age" validation="max:120" />

min ​

Description

The value must not be less than the specified minimum (numeric).

Parameters

minValue

Example

vue
<u-field name="age" validation="min:18" />

not ​

Description

The value must not equal any of the specified values.

Parameters

value1,value2,...

Example

vue
<u-field name="username" validation="not:admin,root" />

starts_with ​

Description

The value must start with one of the specified substrings.

Parameters

value1,value2,...

Example

vue
<u-field name="phone" validation="starts_with:+86,+1" />

uppercase ​

Description

The value must be entirely uppercase letters.

Parameters

None

Example

vue
<u-field name="code" validation="uppercase" />

url ​

Description

The value must be a valid URL.

Parameters

None

Example

vue
<u-field name="website" validation="url" />