Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJS的货币输入_Javascript_Angularjs_Input_Format - Fatal编程技术网

Javascript AngularJS的货币输入

Javascript AngularJS的货币输入,javascript,angularjs,input,format,Javascript,Angularjs,Input,Format,我正在尝试为货币输入,其中千用“.”分隔,小数用“.”分隔,例如:1.000,00。这就是它在输入字段中的显示方式,但模型应该是1000.00。如果我们有模型值,它应该显示为1.000,00,如果没有,它可以保持为空,到目前为止,我有这样的东西: //代码在这里 var-app=angular.module(“myApp”,[]); app.controller(“myController”,函数($scope){ $scope.amount=12548.12 }); 应用指令('smartF

我正在尝试为货币输入,其中千用“.”分隔,小数用“.”分隔,例如:1.000,00。这就是它在输入字段中的显示方式,但模型应该是1000.00。如果我们有模型值,它应该显示为1.000,00,如果没有,它可以保持为空,到目前为止,我有这样的东西:

//代码在这里
var-app=angular.module(“myApp”,[]);
app.controller(“myController”,函数($scope){
$scope.amount=12548.12
});
应用指令('smartFloat',函数(){
返回{
财务主任($范围){
},
要求:'ngModel',
限制:“A”,
链接:功能(范围、元素、属性、模型){
函数inputValue(){
var inputVal=element.val();
var-res;
//清除左侧零
while(inputVal.charAt(0)='0'){
inputVal=inputVal.substr(1);
}
inputVal=inputVal.replace(/[^\d.\',']/g',);
变量点=inputVal.indexOf(“,”);
如果(点>=0){
inputVal=inputVal.slice(0,点+3);
}
var decimalSplit=inputVal.split(“,”);
var intPart=小数分割[0];
var Depart=小数分割[1];
intPart=intPart.replace(/[^\d]/g',);
如果(intPart.length>3){
var intDiv=数学地板(intPart.length/3);
while(intDiv>0){
var lastcoma=intPart.indexOf(“.”);
如果(最后一个逗号<0){
lastcoma=intPart.length;
}
如果(最后一个逗号-3>0){
intPart=intPart.slice(0,lastcoma-3)+“+”intPart.slice(lastcoma-3);
}
intDiv--;
}
}
if(decPart==未定义){
depart=“”;
}
否则{
depart=“,”+depart;
}
如果(intPart==“”&decPart!=“”){
intPart=0;
}
如果(intPart==“”&decPart==“”){
res=null;
}否则{
res=intPart+depart;
}
如果(res!=输入值){
ngModel.$setViewValue(res);
ngModel.$render();
}
返回res
}
//从模型到视图
ngModel.$parsers.push(inputValue);
ngModel.$formatters.push(函数(val){
返回值
});
}
};
})

无效金额!
{{amount}}
摘自并改编自:

函数commafy(num){
var str=num.split('.');
如果(str[0]。长度>=2){
str[0]=str[0]。替换(/(\d)(?=(\d{3})+$)/g,“$1”);
}
返回str.join(',');
}
控制台日志(commafy('1000.00'));

console.log(commafy('1230154.27'))那么您正试图直接交换十进制和逗号值?为什么不直接使用像
10000.00这样的值呢?考虑到这是一种直接交换,您可能需要使用第三个值作为中介。您的脚本当前返回的是什么?您具体遇到了什么问题?在某些国家,货币的格式是1.000,00。脚本当前返回的是输入字段中的内容。问题是我需要在模型上以1000.00的方式设置格式,在输入1.000,00中设置格式。并且输入字段只允许数字和逗号输入