【发布时间】:2016-10-19 12:17:49
【问题描述】:
如何在文本框中以 INR 格式显示数字(输入类型=文本)。 因此,当用户不断更改文本时,它应该相应地格式化为 INR 格式。
如果我们绑定 ng-model,下面的代码可以工作。
var app = angular.module('app', []);
app.controller('indexCtrl', function ($scope) {
$scope.amount = 12564252.33;
});
app.filter('INR', function () {
return function (input) {
if (! isNaN(input)) {
var result = input.toString().split('.');
var lastThree = result[0].substring(result[0].length - 3);
var otherNumbers = result[0].substring(0, result[0].length - 3);
if (otherNumbers != '')
lastThree = ',' + lastThree;
var output = otherNumbers.replace(/\B(?=(\d{2})+(?!\d))/g, ",") + lastThree;
if (result.length > 1) {
output += "." + result[1];
}
return output;
}
}
});
<!DOCTYPE html>
<html ng-app="app">
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
</head>
<body ng-controller="indexCtrl">
Input: <input type="text" ng-model="amount">
<h3>{{amount | INR}}</h3>
</body>
</html>
基本上我希望输入字段本身应该在用户输入时用逗号分隔。
【问题讨论】: