web-dev-qa-db-ja.com

変数でng-patternを使用することは可能ですか?

正規表現がひどいのですが、変数でng-patternを使用できるかどうか疑問に思いました

例えば、

ng-pattern="/^{{validationCode}}$/"

ここで、validationCodeは、コントローラーの$ scopeにアタッチされた変数です。

// Inside Controller
$scope.validationCode = 'response returned from server'

場合

$scope.validationCode = 1234123412351234

その場合、ng-patternは次のようになります。

ng-pattern="/^1234123412351234$/"

しかし、これは機能しておらず、本当に必要のないカスタムディレクティブを作成する必要があるようです。

17
abcf

ng-patternは正規表現を必要とします。

Angularから ドキュメントng-patternについて:

値がRegExpパターン式と一致しない場合、パターン検証エラーキーを設定します。期待値は、インラインパターンの場合は/regexp/、スコープ式として定義されたパターンの場合はregexpです。

つまり、コントローラーでRegExpを作成できます。

$scope.pattern = new RegExp(patternFromServer);

そしてそれを使用します:

<input ng-model="foo" ng-pattern="pattern">
26
New Dev