Как я могу проверить правильность расположения запятых в числе, введенном пользователем? - PullRequest
1 голос
/ 20 августа 2009

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

Например

1,000,000.00 = correct
1000000      = correct
1,00,000.00  = incorrect
,100,000     = incorrect

Похоже, мне нужно проверить, чтобы было хотя бы одно число слева и три числа справа от запятой, или есть способ RegEx сделать это?

Ответы [ 4 ]

5 голосов
/ 20 августа 2009
/^(?:\d+|\d{1,3}(?:,\d{3})*)(?:\.\d+)?$/
2 голосов
/ 20 августа 2009

Проверить этот сайт: http://blog.stevenlevithan.com/archives/commafy-numbers

Вот фрагмент кода:

String.prototype.commafy = function () {
    return this.replace(/(^|[^\w.])(\d{4,})/g, function($0, $1, $2) {
        return $1 + $2.replace(/\d(?=(?:\d\d\d)+(?!\d))/g, "$&,");
    });
}

Number.prototype.commafy = function () {
    return String(this).commafy();
}

Что вы можете сделать, это заменить все запятые, а затем использовать этот код для добавления запятых самостоятельно.

Надеюсь, это поможет.

2 голосов
/ 20 августа 2009

Для чего вы собираетесь использовать это? Или иначе говоря, зачем заботиться? Почему бы просто не убрать все запятые и не преобразовать их в числовой тип?

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

Вот шаблон , который отвечает на ваш вопрос. Там также есть много других шаблонов, связанных с числами, в том числе и тех, которые можно обслуживать - о чем никто никогда не беспокоится.

...