是否可以将ng-pattern与变量一起使用

时间:2015-02-25 23:06:49

标签: javascript regex angularjs

我对正则表达式很糟糕,但我想知道是否可以使用带有变量的ng-pattern

例如,

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

其中validationCode是一个附加到控制器中$ scope的变量

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

如果

$scope.validationCode = 1234123412351234

然后ng-pattern将是

ng-pattern="/^1234123412351234$/"

但这不起作用,似乎我需要创建一个我不想要的自定义指令

1 个答案:

答案 0 :(得分:26)

ng-pattern期望正则表达式。

来自Angular的documentation关于ng-pattern

  

如果值与RegExp模式表达式不匹配,则设置模式验证错误键。对于内联模式,预期值为/regexp/;对于定义为范围表达式的模式,预期值为regexp

换句话说,您可以在控制器中创建一个RegExp:

$scope.pattern = new RegExp(patternFromServer);

并使用它:

<input ng-model="foo" ng-pattern="pattern">