Как я могу проверить правильное местоположение запятых в номере, введенное пользователем?

StackOverflow https://stackoverflow.com/questions/1308016

Вопрос

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

Например

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

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

Это было полезно?

Решение

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

Другие советы

/^(?:\d+|\d{1,3}(?:,\d{3})*)(?:\.\d+)?$/

Проверьте этот сайт: 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();
}

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top