0

在过去的几个版本中,我一直在使用带有 AngularJS 的 Regex 模式验证,并且效果很好。

我的应用程序要求验证模式由范围属性公开,相应的 AngularJS 验证指令绑定到该范围属性。在 v1.3 之前,它看起来像这样:

// On the controller
$scope.validationPattern = "^\\d*$"; // Allow only numeric digits

<!-- in the HTML page --->
<input type="text" name="age" ng-pattern="/{{validationPattern}}/" />

现在将 AngularJS 更新到 v1.4(绕过 v1.3),我发现上述方法不再有效。查看 v1.3的迁移说明,我发现这是预期行为,需要一种新方法,如下所示:

// On the controller
$scope.validationRegexp = /^\d*$/; // Use a RegExp instead of a string

<!-- in the HTML page --->
<input type="text" name="age" pattern="{{validationRegexp}}" />

但是,我根本无法让它工作。如果我将验证模式内联(在 HTML 输入元素内)它工作正常,但是当移动到范围对象并绑定到patternorng-pattern指令时,不会发生验证。

这是一个演示问题的 JSFiddle

请问有什么建议吗?

4

1 回答 1

1

您应该只使用范围变量的名称:

<input type="text" name="age" ng-pattern="validationPattern" />
于 2015-07-09T16:45:32.480 回答