1

你们中的任何人都可以帮助我使用正则表达式来允许这样做:

123.123
123.
1323.2
1.2312
1,23
123123,32
123,
123412

所以总结一下:只有一个小数点,它可以是最后一个..但大多数不是第一个。

但不是这个:

12.323.323
1213..
12331...3123
.12313
,123132 
4

4 回答 4

11

这应该工作

^\d+[\.,]?\d*$

^字符串开头
\d+1 位或多位数字
[\.,]?0 或 1 位十进制或逗号
\d*0 位或多位数字
$字符串结尾。

于 2013-03-18T11:35:11.983 回答
2
\b\d+(\.|,)\d*\b

意思是:

a word boundary
a digit one or more times
a `.` or a `,`
a digit zero or more times
a word boundary

单词边界是为了防止正则表达式从数字中间匹配

于 2013-03-18T11:34:57.350 回答
0

试试这个,它适用于你提到的所有情况。

(\d+)(((\.|,)\d+)|,))

于 2013-03-18T11:43:45.673 回答
0

我对您的正则表达式的修复: (\d+)(((.|,)\d+)|,)? 添加 '?' 最后,它将适用于零值

于 2014-07-18T22:16:27.187 回答