十进制数的正则表达式(最多3个带逗号的十进制数)

本文关键字:十进制数 最多 正则表达式 3个 | 更新日期: 2023-09-27 18:29:02

如何编写一个正则表达式来验证应该只包含十进制值的输入文本框?该值最多可以有3个小数(但也可以没有),逗号作为分隔符。

例如,下面给出的这些值是有效的:-

12341,231,21.

这些无效:

12345(小数位数过多)A(字母不是数字)(空格或字符串为空)1.234(用点代替逗号)

十进制数的正则表达式(最多3个带逗号的十进制数)

试试这样的东西:

'd+(?:,'d{1,3})?

解释:-

'd+        # multiple digits
(?:        # start non-capturing group  
  ,        # a comma
  'd{1,3}  # 1-3 digits
)?         # end non-capturing group, made optional

您可以使用这样的模式:

[0-9]+(,[0-9]{1,3})?

@"'d+,?'d{0,3}"怎么样:1个或多个数字,然后是一个可选逗号,然后是0到3个数字。这假设您允许逗号前有任意数量的数字。在您的示例中,您只有一个,在这种情况下,您希望删除+

如果值1,无效,则必须将?移动到末尾:@"'d+(,'d{1,3})?"

注意,如果您只想在小数前有一个字符,请删除+

^'d+(,('d?){3})?$

^   //start
'd+   //one or more decimal digits
(,('d?){3})?    //a comma, followed by up to 3 decimal digits, optionally
$    //end

如果您不希望1,被接受,那么中间部分可以是(,'d('d?){2})?