FormBridgeで複数のバリデーションを実装したい

ラジオボタンの値によって電話番号のフィールドに入力必須と10桁または11桁のみ許容するバリデーションを実装したいです。

現状入力必須のバリデーションは実装できているのですが、
10桁OR11桁のバリデーションがうまく実装できません。
初心者で申し訳ございませんが実装方法をどなたかご教授いただけますと幸いです。
よろしくお願いします。

(function () {

	'use strict';

	fb.events.fields.[ラジオボタンのフィールド].changed = [function (state) {

		if (state.record.[ラジオボタンのフィールド].value === '希望する')  {
			
			state.fields.find(({ code }) => code === [電話番号のフィールド]).validations.push({
				params: '',
				rule: ['required','validation']

			});

			fb.addValidators = function (state) {
				const telPattern = /^\d{10,11}$/;
				const telValue = state.record.[電話番号のフィールド].value;

				return {
					    validation: {
						getMessage: function (fieldCode, params) {
							return '電話番号は10桁または11桁で入力してください';
						},
						validate: function (value, params) {
							if (!(telValue.match(telPattern))) {
								return false;
							}
						}
					}
				}
			};
		}

	}];
})();
if (!(telValue.match(telPattern))) { 
  return false;
}

match() メソッドの返り値は配列なので、その実装ですと return false; は絶対に実行されない(条件が常に偽となる)ですね。

正規表現による真偽判定を行う場合には RegExp オブジェクトの test() メソッドを利用するのが良いかと思います!

if (!(telPattern.test(telValue))) { 
  return false;
}

とするとうまく動きますかね・・・

hiranok1様
回答ありがとうございます。
ご指摘の内容で修正しましたが、
うまく動作しませんでした。

電話番号のフィールドは入力値を電話番号にしていたため、外してみましたが必須も効かなくなってしまいました。

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。