如何在用户输入的数字中检查逗号的正确位置?

时间:2009-08-20 18:31:53

标签: javascript regex number-formatting

我正在寻找一种方法来检查用户为可选逗号的正确位置输入的数字。

例如

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

所以看起来我需要检查左边至少有一个数字和逗号右边有3个数字,还是有RegEx方式来做这个?

4 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:2)

你打算用它做什么?或换一种方式,为什么要关心?为什么不删除所有逗号并将其转换为数字类型?

答案 2 :(得分:2)

查看此网站: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();
}

您可以做的是替换所有逗号,然后使用此代码自行添加逗号。

希望有所帮助。

答案 3 :(得分:0)

Here’s a pattern可以回答您的问题。那里还有许多与数字相关的模式,包括那些可维护的模式 - 似乎没有人担心过。