有没有一种简洁的方法生成一个正则表达式,可以匹配使用本地配置的Java NumberFormat格式化的值?或者有一些库可以实现这个功能吗?
这是一个基于web的应用程序,我想将正则表达式传递到JSP页面上,以便在数字字段上进行JavaScript验证。每个用户的语言环境都不同,我不想手动编写特定数字格式的正则表达式。
有没有一种简洁的方法生成一个正则表达式,可以匹配使用本地配置的Java NumberFormat格式化的值?或者有一些库可以实现这个功能吗?
这是一个基于web的应用程序,我想将正则表达式传递到JSP页面上,以便在数字字段上进行JavaScript验证。每个用户的语言环境都不同,我不想手动编写特定数字格式的正则表达式。
不幸的是,DecimalFormat
使用 自己的模式语言。
您可以像这样获取模式字符串:
DecimalFormat nf = (DecimalFormat) NumberFormat.getCurrencyInstance();
// ...
String patter = nf.toLocalizedPattern();
在我的系统上返回"¤#,##0.00"
你可能能够自己编写一个函数将其转换为正则表达式(仅限于应用程序中使用的情况),但它不在标准库中,我也不知道有任何第三方库可以做到这一点。