java从本地化的NumberFormat生成正则表达式

时间:2010-02-05 17:23:11

标签: java regex number-formatting

是否有任何干净的方法来生成一个正则表达式,该表达式将匹配使用语言环境配置的java NumberFormat格式化的值?或者某些图书馆会这样做?

这是基于网络的应用程序&我想将正则表达式传递给jsp页面,以便在数字字段上进行javascript验证。区域设置因用户而异。我不想为每种数字格式手动编写特定的正则表达式。

1 个答案:

答案 0 :(得分:1)

不幸的是DecimalFormat使用了its own pattern language

您可以像这样获取模式字符串:

DecimalFormat nf = (DecimalFormat) NumberFormat.getCurrencyInstance();
// ...
String patter = nf.toLocalizedPattern();

我系统上的哪一项会返回"¤#,##0.00"

您可能可以使用自己的函数将其转换为正则表达式(仅限于应用程序中使用的情况),但它不在标准库中,我不知道任何第三方库这样做。