我对正则表达式很糟糕,但我想知道是否可以使用带有变量的ng-pattern
例如,
ng-pattern="/^{{validationCode}}$/"
其中validationCode是一个附加到控制器中$ scope的变量
// Inside Controller
$scope.validationCode = 'response returned from server'
如果
$scope.validationCode = 1234123412351234
然后ng-pattern将是
ng-pattern="/^1234123412351234$/"
但这不起作用,似乎我需要创建一个我不想要的自定义指令
答案 0 :(得分:26)
ng-pattern
期望正则表达式。
来自Angular的documentation关于ng-pattern
:
如果值与
RegExp
模式表达式不匹配,则设置模式验证错误键。对于内联模式,预期值为/regexp/
;对于定义为范围表达式的模式,预期值为regexp
。
换句话说,您可以在控制器中创建一个RegExp:
$scope.pattern = new RegExp(patternFromServer);
并使用它:
<input ng-model="foo" ng-pattern="pattern">