Overwrite angular.js var NUMBER_REGEXP



我需要在数字输入字段中验证科学记数法格式的数字。

为了做到这一点,我在angular.js文件(行:18652 v0.13)中替换了以下常量:
var NUMBER_REGEXP = /^s*(-|+)?(d+|(d*(.d*)))([eE]+[-]?d+)?s*$/;
//var NUMBER_REGEXP = /^s*(-|+)?(d+|(d*(.d*)))s*$/;

现在,像0.045e-10这样的值在"number"类型的输入中被接受为数字。

我希望从我的应用程序而不是从angular.js文件中这样做,以便不必记住在更新框架文件时再次更改。

我试图简单地覆盖在我的主应用程序控制器的第一行,如:

NUMBER_REGEXP = /^s*(-|+)?(d+|(d*(.d*)))([eE]+[-]?d+)?s*$/;

但不工作

如何做到这一点?

在您希望接受这种格式的输入上创建您自己的验证。您可以创建包含正则表达式的自己的常量。

module.constant('SCIENTIFIC_NOTATION_NUM_REGEX', /^s*(-|+)?(d+|(d*(.d*)))([eE]+[-]?d+)?s*$/);

然后将它注入到任何你想要使用它的控制器或指令中,并在模板中使用它。

<input name="scientificNotationNum" ng-pattern="ctrl.SCIENTIFIC_NOTATION_NUM_REGEX">

这个例子反映了在视图上使用controllera将常量绑定到控制器实例的情况。另一种可能是将其绑定到$作用域。或者你可以创建自己的自定义输入验证,以便在整个应用程序中重用。

相关内容

  • 没有找到相关文章

最新更新