我想要一个正则表达式来验证 DECIMAL 数字:
有效的 DECIMAL 数字是:
+123
123
-123
+123.0000
+123,123.999
.0234
+1123,233,34
无效的 DECIMAL 数字是:
+1233+
-1233_
+12.233.33
有没有人可以帮助解决这个问题
我想要一个正则表达式来验证 DECIMAL 数字:
有效的 DECIMAL 数字是:
+123
123
-123
+123.0000
+123,123.999
.0234
+1123,233,34
无效的 DECIMAL 数字是:
+1233+
-1233_
+12.233.33
有没有人可以帮助解决这个问题
这个更好:
^[+\-]?\d+(,\d{3})*(\.\d*)?$
加号或减号,可选地,后跟任意数量的数字,可选地后跟任意数量的,123
部分,可选地后跟小数和更多数字,这将处理除带前导小数的数字之外的任何内容。
^[+\-]?(\d+(,\d{3})*(\.\d*)?|\.\d+)$
添加该其他选项允许具有前导小数的数字,必须后跟数字。
这适用于所有人:
+123
123
-123
+123.0000
+123,123.999
.0234
+1123,233,34
检查演示:
^[+\-]?(\d+(,?\d)*(\.\d*)?|\.\d+)$
取决于您的正则表达式支持。
^([-+])?(\d+)?(\.\d+)?$
可选 + 或 -、数字、可选 ',' 后跟更多数字。不幸的是,也会匹配空字符串。
我认为这是你能得到的最简单的:
^[+-]?\d*\.?\d+$
小数点后总是需要数字。利用这一事实可以简化问题。
更新:起初我没有注意到您还需要处理逗号。这是一个简单的版本,允许在小数点左侧使用逗号。每个逗号前后必须至少有一个数字,但除此之外没有强制执行任何规则(这似乎是您的示例数据的重点)。实际上,最后一个逗号后需要两位数。
^[+-]?(\d+(,\d)?)*\.?\d+$
你可以用这个
^([-+] ?)?[0-9]+(,[0-9]+)?$