十进制数的正则表达式(最多3个带逗号的十进制数)
本文关键字:十进制数 最多 正则表达式 3个 | 更新日期: 2023-09-27 18:29:02
如何编写一个正则表达式来验证应该只包含十进制值的输入文本框?该值最多可以有3个小数(但也可以没有),逗号作为分隔符。
例如,下面给出的这些值是有效的:-
12341,231,21.
这些无效:
12345(小数位数过多)A(字母不是数字)(空格或字符串为空)1.234(用点代替逗号)
试试这样的东西:
'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})?