3

我正在尝试验证点和数字。

有效的:

1.2.3
1.4.1

无效的:

1.2.3.
1.2-3
1-2-3

我从另一个线程尝试了以下操作,它适用于有效,但它也通过破折号(-)传递无效。

^\d+(.\d+)*$

对正则表达式有什么改进,所以只验证点和数字是严格的吗?

谢谢

4

5 回答 5

4

您需要转义点,否则它是正则表达式中的“任何字符”:

^\d+(\.\d+)*$
于 2012-09-24T09:09:38.530 回答
3

试试这个:

^\d+(\.\d+)*$

正则表达式演示

于 2012-09-24T09:10:43.830 回答
2

如果您需要可变数量的点和数字重复数字和点并将最后一个数字作为唯一数字:

(\d+\.)+\d+

它匹配 1.2.3 1.2.3.4 等等

如果您需要固定长度的数字,请输入重复次数而不是 + 运算符

(\d+\.){2}\d+ #for 1.2.3
(\d+\.){1}\d+ #for 1.2
于 2012-09-24T09:11:50.100 回答
1

使用这个正则表达式^\d+\.\d+\.\d+$

您在点中的错误,点表示任何符号

于 2012-09-24T09:08:49.837 回答
1

点匹配所有字符,您应该使用 \。

^\d+(\.\d+)*$

但这也将验证任何没有点的数字,当至少 1 个点应该存在时使用:

(\d+\.)+\d+

于 2012-09-24T09:11:39.370 回答