int和float的正则表达式都不能正常工作

时间:2012-10-18 12:43:22

标签: javascript regex string

我需要允许用户只在文本框中输入integer(33)和float(33.343)。

以下是我的Regex查询,但它运行不正常。它允许用户输入浮点值但在int值上给出错误。但我还需要允许用户输入int。当用户输入任何其他类型的值时,它工作正常并给出错误消息。

/^[0-9]*[.][0-9]*$/

3 个答案:

答案 0 :(得分:3)

制作点和可选后的部分:

"^\d+(?:\.\d+|)$"

也更喜欢\d而不是[0-9],请不要使用*,因为这样你就不允许在.

的任何一边都没有数字

这将接受:

1
1.23

但不是:

.1
23.

如果你想要这种行为,那取决于你。

答案 1 :(得分:3)

尝试:

/^[0-9]+(?:\.[0-9]+)?$/

答案 2 :(得分:2)

使用正则表达式

^(?=.*\d)\d*(?:\.\d*)?$

这将匹配例如:

1234
123.
1.23
12.3
0.12
.123