Regex, чтобы проверить / установить цену с точкой / запятой и разобрать в целое число - PullRequest
0 голосов
/ 12 ноября 2010

Я хочу принять цены и преобразовать их в целые числа, такие как:

    1.400 -> true, "$1.400,00" , 140000
    1.400,00 -> true, "$1.400,00" , 140000
    1.400,0 or 1.400,000000 -> true, "$1.400,00" , 140000
//get only the first 2 digits before the comma ->1.400,9394239 -> 1.400,93
    1.400.000 -> true, "$1.400.000,00", 140000000
    1.400.00 -> false
    1.40.00 -> false

    14,00 -> true, "$14,00" , 1400
    14 -> true, "$14,00" , 1400
    14.00 -> false

Информация: Мой проект в отличном состоянии.

Если возможно, я бы хотел решить эту проблему, потому что яесть проект, который t use Double to deal with prices, it converts to Integers after treat the String just like that but in javascript, I understand some parts of the code but I don't know how to implement in groovy/java, but I не вставит его в любом случае.

String.prototype.formatNumber = function() {
    var value = this.replace(",",".").replace(/[^\d\.]/g,'');
    value = 0+value;
    while (isNaN(value))
        value = value.substring(0,valor.length-1);
    value = parseInt(value * 100) / 100;
    return value;
}

1 Ответ

0 голосов
/ 12 ноября 2010

Сначала проверьте это с этим регулярным выражением:

^(\d?\d?\d?\.?)*(,\d+)?$

И если оно совпадает, то замените все точки (.) на пустые и разделите запятой (,).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...