我正在寻找一种检查用户输入的数字以确保可选逗号的正确位置的好方法。
例如
1,000,000.00 = correct
1000000 = correct
1,00,000.00 = incorrect
,100,000 = incorrect
所以看起来我需要检查逗号左边至少有一个数字,逗号右边有 3 个数字,还是有 RegEx 方法来做到这一点?
我正在寻找一种检查用户输入的数字以确保可选逗号的正确位置的好方法。
例如
1,000,000.00 = correct
1000000 = correct
1,00,000.00 = incorrect
,100,000 = incorrect
所以看起来我需要检查逗号左边至少有一个数字,逗号右边有 3 个数字,还是有 RegEx 方法来做到这一点?
/^(?:\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();
}
您可以做的是替换所有逗号,然后使用此代码自己添加逗号。
希望有帮助。
这是一个回答你问题的模式。那里还有许多其他与数字相关的模式,包括可维护的模式——这似乎没人担心。