Java генерирует регулярное выражение из локализованного NumberFormat - PullRequest
4 голосов
/ 05 февраля 2010

Есть ли какой-нибудь чистый способ создания регулярного выражения, которое будет соответствовать значениям, отформатированным с помощью сконфигурированного на языке Java NumberFormat? Или какая-нибудь библиотека, которая сделает это?

Это веб-приложение, и я хочу передать регулярное выражение на страницу jsp для проверки JavaScript на числовых полях. Локаль варьируется в зависимости от пользователя, и я бы не хотел вручную кодировать определенные регулярные выражения для каждого числового формата.

1 Ответ

1 голос
/ 05 февраля 2010

К сожалению DecimalFormat использует свой собственный язык шаблонов .

Вы можете получить строку шаблона следующим образом:

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

Который в моей системе возвращает "¤#,##0.00"

Возможно, вы сможете свернуть свою собственную функцию, которая преобразует ее в регулярное выражение (ограничено случаями, которые используются в вашем приложении), но ее нет в стандартной библиотеке, и я не знаю ни о какой сторонней библиотеке это делает.

...