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

abc*_*bcf 17 javascript regex angularjs

我对正则表达式很糟糕,但我想知道是否可以将ng-pattern与变量一起使用

例如,

ng-pattern="/^{{validationCode}}$/"
Run Code Online (Sandbox Code Playgroud)

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

// Inside Controller
$scope.validationCode = 'response returned from server'
Run Code Online (Sandbox Code Playgroud)

如果

$scope.validationCode = 1234123412351234
Run Code Online (Sandbox Code Playgroud)

那么ng-pattern就是

ng-pattern="/^1234123412351234$/"
Run Code Online (Sandbox Code Playgroud)

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

New*_*Dev 26

ng-pattern 期待正则表达式.

从角的文档有关ng-pattern:

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

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

$scope.pattern = new RegExp(patternFromServer);
Run Code Online (Sandbox Code Playgroud)

并使用它:

<input ng-model="foo" ng-pattern="pattern">
Run Code Online (Sandbox Code Playgroud)