8

angularjsで条件付きng-patternを達成する方法はありますか

ng-pattern="(myForm.exipration.$dirty ? ('/^\d{2}[/]\d{4}$/') : '')"

上記のように試しましたが、役に立ちません。

4

2 に答える 2

17

マークアップ

<input ... ng-pattern="handlePatternPassword">

コントローラ

$scope.handlePatternPassword = (function() {
  var regex = /^[A-Za-z0-9!@#$%^&*()_]{4,20}$/;
  return {
    test: function(value) {
      if ($scope.user.isLogged) {
        return (value.length > 0) ? regex.test(value) : true;
      } else {
        return regex.test(value);
      }
    }
  };
})();

https://stackoverflow.com/a/18984874/4640499から。

于 2015-11-20T17:00:37.883 に答える
10

以下は私にとってはうまくいきました(AngularJS v1.5.11):

ng-pattern="condition ? '[A-Za-z0-9_-]{1,60}' : ''"
于 2017-06-27T08:41:55.577 に答える