2010-02-05 64 views
4

是否有任何干淨的方式來生成一個正則表達式,將匹配與區域設置配置的java NumberFormat格式化的值?或者一些圖書館會這樣做?java從本地化的NumberFormat生成正則表達式

這是在一個基於web的應用程序&我想將正則表達式傳遞給jsp頁面以在數字字段上進行javascript驗證。語言環境因用戶而異&我不想爲每種數字格式手動編寫特定的正則表達式。

回答

1

不幸的是DecimalFormat使用its own pattern language

你可以得到的模式字符串是這樣的:

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

這在我的系統會返回"¤#,##0.00"

你也許可以推出自己的功能轉換,爲一個正則表達式(僅限於個案這是在你的應用程序中使用的),但它不在標準庫中,我不知道有任何第三方庫。

+0

所以你說這是我榮耀的機會... 謝謝,這讓我成爲回家的一部分。我會抱有一點希望,別人可以和其餘的人一起插話。 – user267272 2010-02-05 20:23:04