angularjs - 如何在输入文本字段中的有效数字之前删除零 - angularjs

标签 angularjs

我想删除或修剪输入文本字段中第一个或有效数字之前的零。

我有一个文本字段,并限制用户只能输入数字。当我输入值“0145”时,它应该读为“145”。

<div ng-controller="MyCtrl">
    <input type="text" ng-model="number" required="required" numbers-only="numbers-only" />
</div>

JavaScript:

angular.module('myApp', []).directive('numbersOnly', function(){
   return {
     require: 'ngModel',
     link: function(scope, element, attrs, modelCtrl) {
       modelCtrl.$parsers.push(function (inputValue) {
           // this next if is necessary for when using ng-required on your input. 
           // In such cases, when a letter is typed first, this parser will be called
           // again, and the 2nd time, the value will be undefined
           if (inputValue == undefined) return '' 
           var transformedInput = inputValue.replace(/[^0-9]/g, ''); 
           if (transformedInput!=inputValue) {
              modelCtrl.$setViewValue(transformedInput);
              modelCtrl.$render();
           }         

           return transformedInput;         
       });
     }
   };
});

function MyCtrl($scope) {
    $scope.number = ''
}

JSFiddle

最佳答案

将您的正则表达式更改为:

var transformedInput = inputValue.replace(/^[^1-9]*|[^0-9]/g, ''); 

关于angularjs - 如何在输入文本字段中的有效数字之前删除零 - angularjs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43873336/

相关文章:

javascript - 使用 Sinon.js 为 Angular.js 应用程序设置 RESTful 后端模拟

angularjs - 如果被包含的内容为空,如何隐藏元素?

angularjs - Angular 模态 - 将参数从一个 Controller 传递到另一个 Controller

javascript - 从 Controller 触发指令的更好方法

ruby - 与 Sinatra 和 AngularJS 的跨域 session

angularjs - 无法在 angular-meteor 应用程序中使用 ui-router 编辑我的文档

javascript - 无法在 Angular 服务中更新函数内部的值

javascript - 如何将 AngularJS 1.6 升级到 Angular 5

javascript - 具有绝对路径的angular js templateUrl

javascript - 给定一个时区字符串,我如何在 JS 中将日期对象设置为该 TZ