如何在 Angular JS 中的三位数字后添加点

how to add dot after three digits in angular js

本文关键字:三位 数字 添加 Angular JS      更新时间:2023-09-26

我是新的 angular js .我想制作输入模式 XXX.XXXX .如果用户输入浮点值,那么它不应该做任何事情,但如果用户输入1234456(非十进制值),那么它将自动使 123.4560如果用户输入 12.909,则它不执行任何操作。在第三个非十进制数字之后,它应该添加点。请帮忙

尝试遵循它会有所帮助:

.JS

 var myApp = angular.module('myApp',[]);

function MyCtrl($scope) {
    $scope.onBlur = function($event) {
     var num = $scope.foo;
      if (num.indexOf(".") == -1 && num.length > 4)
      {
        $scope.foo = num.substring(0,3) + "." + num.substring(3);
      }    
    }
}

.HTML

<div ng-controller="MyCtrl">
    <input type="text" ng-model="foo" ng-blur="onBlur($event)"/>
</div>

演示小提琴

您将拥有一个在按键上运行或监视绑定值的函数。检查字符串是否是一个数字,然后使用 to 固定字符串长度的减去 3,如下所示(未测试):

if (str.isNaN()) {
    return "";
} else {
    var length = (str.length - 3); 
    return str.toFixed(length);
}
您可以使用

输入框的模糊事件上的简单函数来实现此目的。

$scope.inputValue = "";
  $scope.checkDecimal  = function()
  {
    if(!isNaN($scope.inputValue) && $scope.inputValue % 1 !== 0)
    {
      alert("Its a decimal value");
    }
    else if(!isNaN($scope.inputValue) && $scope.inputValue.length > 3)
    {
      var deNominator = Math.pow(10, ($scope.inputValue.length - 3) );
      $scope.inputValue = $scope.inputValue /deNominator;
    }
    else if(!isNaN($scope.inputValue) && $scope.inputValue < 1000)
    {
       $scope.inputValue =  $scope.inputValue;
    }
    else
    {
      alert("Please enter a valid number value");
      $scope.inputValue = "";
    }
  }

供参考的普伦克 : http://plnkr.co/edit/tpl:8rFfZljYNl3z1A4LKSL2?p=preview