【发布时间】:2018-03-06 03:21:29
【问题描述】:
我从 Web 服务获取货币值,我想在数字输入(浮点部分)中显示它,它是输入旁边的简单标签上的货币符号/名称。
我从网络服务获得的数据示例:
$ 1.200,05
1200.05 雷亚尔
kr。 1,200.05
37,200.05 克朗
300 美元
500.0 欧元
可以看到数据非常混杂。
符号/货币名称可以在数字值之前或之后,符号和数字之间可以有空格,或者根本没有空格。它也可以在货币名称中包含一个点,我仍然想保留它(比如丹麦克朗:kr.)
小数点可以是 '.' 或 ',',并且可以跟任意位数的小数。 与 千位分隔符 相同:它可以是 '.'或','
我有以下 sn-p 来获取数字值,但是我在获取货币字符串部分时遇到了问题:
if (!isNaN(cost.charAt(0))) { //check whether it starts with number or string, to adjust the regex
var regex = /([+-]?[0-9|^.|^,]+)[\.|,]([0-9])/
var result = regex.exec(cost);
var floatResult = result? result[1].replace(/[.,]/g, "")+ "." + result[2] : cost.replace(/[^0-9-+]/g, "");
return floatResult;
}
else {
var regex = /([+-]?[0-9|^.|^,]+)[\.|,]([0-9]+)$/igm
var result = regex.exec(cost);
var floatResult = result? result[1].replace(/[.,]/g, "")+ "." + result[2] : cost.replace(/[^0-9-+]/g, "");
return floatResult;
}
我在我的 web 应用程序中使用 jQuery 和 AngularJS,所以如果在其中一个的帮助下有更简单的方法,那就太好了。
【问题讨论】:
标签: javascript jquery angularjs angularjs-directive