我想要一个十进制输入的正则表达式,可以在十进制或逗号前加4位数,在十进制/逗号后加2位数。没有小数的5位数字无效。也可以接受null。
正确值可以是:
1,1111,2222.56,0.99,9999.5
无效
88888,8.888,
验证显示还包括逗号和小数。
如果可能,那么也解释一下表达式。
答案 0 :(得分:11)
Regex.IsMatch(strInput, @"[\d]{1,4}([.,][\d]{1,2})?");
并解释:
[\d]{1,4} any character of: digits (0-9) between 1 and 4 times
[.,] any character of: '.', ','
[\d]{1,2} any character of: digits (0-9) between 1 and 2 times
(...)? match the expression or not (zero or one)
答案 1 :(得分:2)
^-?(0|[1-9]\d{0,3})([,\.]\d{1,2})?$
在COMMA之前:
^ - 字符串的开头
- ? - 可能有零个或一个负号
0 - 十进制可能从一开始只有一个零开始......
| - 或者......
[1-9] - 任意数字从1到9
\ d {0,3} - 后跟任意3位
COMMA之后:
[,。] - 可能有“,”或“。”
\ d {1,2} - 后跟1或2位
(...)? - 零或一次
$ - 字符串的结尾
答案 2 :(得分:1)
[0-9]{1,4}(\.[0-9]{1,2})?
这意味着,1到4位数,然后可选择小数点和1到2位数。
答案 3 :(得分:0)
使用此正则表达式\d{4}[,\.]\d{2}
或\d+([,\.]\d+)?
任何小数
答案 4 :(得分:0)
我们可以通过以下代码
来执行检查字符串值包含小数点的代码 Dim Success As Boolean
If text.Contains(".") Then
Dim result As Integer = Split(text, ".")(1)
If result > 0 Then
Success = True 'Containing Decimal Points greater than
Else
Success = False 'Containing "0" as Decimal Points
End If
End If
Return Success