こんにちは、フロントエンドエンジニアのてりーです。
Veevalidateに備わっているバリデーション以外のバリデーションを実装する場合はカスタムルールを自作する必要があります。
そもそも備わっているバリデーションは何があるの?
ここに利用可能なルール一覧があります。
https://vee-validate.logaretm.com/v4/v4/guide/global-validators#available-rules

よく使う所だと「email」、「min」、「max」辺りですかね。
カスタムバリデーションの作り方
上記のrule以外を自分で実装する場合はカスタムバリデーションを作る必要があります。
基本形は以下のようになります。
//ルール名 extend(test', { //引数 params: [ {name: '',} ], //エラーメッセージ message: 'だめよ〜ん', //バリデーションルール validate(value, {name}) { return value !== name; } });
実例:メールアドレス(サブ)入力時に「メールアドレス(メイン)と同一の値を取れない」を実装する
イメージを掴み為に具体的な実例も見ていきましょう。

extend('emailUnique', { //メールアドレス(メイン)を受け取る params: ['target'], //value(入力値)とメールアドレス(メイン)が一致したらmessageを返す validate(value, { target }) { return value !== target }, //メッセージ message: 'メールアドレス(A)と同じ値は設定できません。' }) ```
<validation-provider name="メールアドレス(サブ)" :rules="'email|max_string:100|emailUnique:@メールアドレス(メイン)'" >
割と簡単に実装できましたね。
以上です。
初めてweb開発の現場に入った時にVue.jsの勉強用に買った本を思い出に添付。