我正在寻找一种检查用户已输入的数字以获取可选逗号的正确位置的好方法。

例如

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