首页 > 解决方案 > 如何以角度解析数字指定模式、小数分隔符和分组分隔符?

问题描述

我会立即承认我是一名 Java 开发人员,并且正在寻找类似于DecimalFormat的函数,例如:

DecimalFormatSymbols unusualSymbols = new DecimalFormatSymbols(Locale.getDefault());
unusualSymbols.setDecimalSeparator('|');
unusualSymbols.setGroupingSeparator('^');
DecimalFormat weirdFormatter = new DecimalFormat("#,##0.###", unusualSymbols);
Number myNum = weirdFormatter.parse("8^453|13");

代码改编自Oracle javase i18n

我能找到的与此相关的每个资源要么只是格式化(而不是解析)

如何在Angular 4中为数字管道指定千位分隔符

NativeScript:格式化数字打字稿

或使用正则表达式替换的人(这对我来说似乎很疯狂)

如何将带有逗号千位分隔符的字符串解析为数字?

或者一些不考虑国际化的一般性话题

TypeScript 将字符串转换为数字

在打字稿中,如何检查字符串是否为数字

我在 Angular 的 GitHub 上做了一些挖掘,我确实找到了这个类format_number但这似乎只与格式化而不是解析有关,或者至少我不知道如何使用它。


问题是:Angular 中有这样的对象吗?如果没有,这也是一个有效的答案(我可以停止搜索)。如果您想使用外部库传递解决方案,请记住在链接周围添加上下文

标签: angulartypescriptparsinginternationalizationnumbers

解决方案


我会简单地做:

var numberStr = "8^453|13";
var number = parseFloat(numberStr.replace("^", "").replace("|", "."));

推荐阅读