我正在创建一个指令,我可以选择小数位的长度,并且只接受一个逗号或点,但是我正面临着实现完美正则表达式的问题。限制指令中的小数位
我代码:
var decimalLenght = 2;
ngModelCtrl.$parsers.push(function(val) {
if (angular.isUndefined(val)) {
var val = '';
}
var clean = val.replace(/[^0-9]+(\.[0-9]{1,2})?$/g, '');
if (val !== clean) {
ngModelCtrl.$setViewValue(clean);
ngModelCtrl.$render();
}
return clean;
});
实际上,正则表达式是不是让我插入点或逗号,也允许键入比小数的极限。
你的正则表达式是没有意义的。它删除几乎所有的东西,除了数字和/或点+ 1到2的数字在最后。在示例之前/之后显示一些 – sln
由于不理解代码,当然不删除数字...,我想要删除不是数字,点或逗号的任何东西 –
为什么不使用此指令? https://github.com/nitishkumarsingh13/Angularjs-Directive-Accept-Number-Only – developer033