Java 生成正则表达式来自本地化的 NumberFormat

4

有没有一种简洁的方法生成一个正则表达式,可以匹配使用本地配置的Java NumberFormat格式化的值?或者有一些库可以实现这个功能吗?

这是一个基于web的应用程序,我想将正则表达式传递到JSP页面上,以便在数字字段上进行JavaScript验证。每个用户的语言环境都不同,我不想手动编写特定数字格式的正则表达式。

1个回答

1

不幸的是,DecimalFormat 使用 自己的模式语言

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

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

在我的系统上返回"¤#,##0.00"

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


所以你是在说这是我的荣耀机会...谢谢,这让我有了一部分进展。我会继续希望其他人能提供剩下的部分。 - user267272

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接