我是AngularJS的新手并且陷入了这个复杂的事情。我必须对HTML输入进行过滤,它将接受数字货币(无字母),逗号应在3位数后自动实现,小数应该在那里,并且应该在左边附加美元符号。
我已经尝试了很多,但结果不是必需的。我制作了这个JavaScript函数,它做了同样的事情,但是如何在输入框中键入时在AngularJS中实现它。
function formatPera(num) {
var p = num.toFixed(2).split(".");
return p[0].split("").reverse().reduce(function(acc, num, i, orig) {
return num + (i && !(i % 3) ? "," : "") + acc;
}, "") + "." + p[1];
}
var money = 1234;
money = formatPera(money);
console.log(money);
我已经搜索了很多并检查了已部署的代码。
答案 0 :(得分:0)
检查以下代码。它在我的最后完美地运作。
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8" />
</head>
<body>
<div ng-app="app" ng-controller="ctrl">
<input type="text" ng-model="price"/> <br/>
{{price | INR}}
</div>
<script src="../lib/angular.js"></script>
<script>
var app = angular.module('app', []);
app.filter('INR', function () {
return function (input) {
var length = input.length;
if(input.length <= 3)
{
return input;
}
else {
var input = input.split('');
var output = input[length - 3] + input[length - 2] + input[length - 1];
var j = 2;
for(i=input.length-3;i--;i>=0)
{
if(j>1)
{
output = ',' + output;
j = 0;
}
if (i >= 0)
{
output = input[i] + output;
j++;
}
}
return output;
}
}
});
app.controller('ctrl', function ($scope) {
$scope.price = '4665987565';
});
</script>
</body>
</html>