是否有任何干净的方法来生成一个正则表达式,该表达式将匹配使用语言环境配置的java NumberFormat格式化的值?或者某些图书馆会这样做?
这是基于网络的应用程序&我想将正则表达式传递给jsp页面,以便在数字字段上进行javascript验证。区域设置因用户而异。我不想为每种数字格式手动编写特定的正则表达式。
答案 0 :(得分:1)
不幸的是DecimalFormat
使用了its own pattern language。
您可以像这样获取模式字符串:
DecimalFormat nf = (DecimalFormat) NumberFormat.getCurrencyInstance();
// ...
String patter = nf.toLocalizedPattern();
我系统上的哪一项会返回"¤#,##0.00"
您可能可以使用自己的函数将其转换为正则表达式(仅限于应用程序中使用的情况),但它不在标准库中,我不知道任何第三方库这样做。