我需要角度来验证数字输入字段中科学记数法格式的数字。
为了做到这一点,我在angular.js文件中替换了以下常量(行:18652 v0.13):
HTTP/1.1 200 OK
Content-Type: text/plain
Content-Length: 3
abc
HTTP/1.1 200 OK
Content-Type: text/plain
Content-Length: 3
abc
现在,在“数字”类型的输入中接受像0.045e-10这样的值作为数字。
我希望从我的应用程序而不是angular.js文件中执行此操作,以便在更新框架文件时不必记住再次更改此内容。
我试着简单地在我的主应用控制器的第一行覆盖,如:
var NUMBER_REGEXP = /^\s*(\-|\+)?(\d+|(\d*(\.\d*)))([eE]+[-]?\d+)?\s*$/;
//var NUMBER_REGEXP = /^\s*(\-|\+)?(\d+|(\d*(\.\d*)))\s*$/;
但没效果。
如何做到这一点?
答案 0 :(得分:0)
在您要接受此格式的输入上创建自己的验证。 您可以创建自己的包含正则表达式的常量。
module.constant('SCIENTIFIC_NOTATION_NUM_REGEX', /^\s*(\-|\+)?(\d+|(\d*(\.\d*)))([eE]+[-]?\d+)?\s*$/);
然后将其注入您想要使用它的任何控制器或指令上,并在模板上使用它。
<input name="scientificNotationNum" ng-pattern="ctrl.SCIENTIFIC_NOTATION_NUM_REGEX">
此示例反映了使用视图上的controllerAs将常量绑定到控制器实例的情况。 其他可能性是将其绑定到$ scope。 或者您可以create your own custom input validation重复使用您的应用。