正则表达式验证应该只允许小数和数字的文本框

时间:2009-01-05 08:03:31

标签: javascript regex

我有一个'Area'的文本框。我需要一个正则表达式来验证文本框,这样它应该允许小数输入但没有字符。任何人都可以帮助我

9 个答案:

答案 0 :(得分:5)

为什么不尝试已经内置于JavaScript的内容:parseFloat函数?

答案 1 :(得分:2)

这个正则表达式可以验证整数和可选的浮点数:

[0-9]*\.?[0-9]+

而不是使用正则表达式,您可以使用isNaN(值)来检查数值是否不是数字(NaN)。

答案 2 :(得分:1)

您所支持的十进制数的格式是什么?

"Simple Regular expression for decimal numbers?" StackOverflow问题详细说明了可能的正则表达式。

^\d+(\.\d{1,2})?$

可以确保带有一位或两位小数的数字,但不适用于34.(无十进制的点)

你有很多可能的正则表达式listed here

Unkwntech是一个很好的完整正则表达式,但允许1,15223,11,00。

我宁愿使用:

[-+]?(?:\d(\,?(?>\d{3}[.,]))?)*(?:\.\d*)?

意思是,如果你使用的是,,那么只有当它跟随3位数(然后是另一个,或小数点的点数时才这样做。这强制执行 {{3但是,正如保罗在评论中所指出的那样,逗号之后有超过三位数的语言环境......

答案 3 :(得分:1)

怎么样

[-+]?(?:\d\,?){0,}(?:\.\d*)?

它将匹配以下所有具有*:

的exapmles

0 *
0.0 *
222.0 *
1,000.00 *
100,000.00 *
-100,000,000,000.12 *
ASDF
blah.blah

答案 4 :(得分:0)

对于十进制值,你必须允许[。],所以这应该适合你:

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

(这也会接受+和 - 符号)

您可以从RegExLib here获得更具体的表达。

答案 5 :(得分:0)

您还可以使用“isFinite”功能:

http://www.w3schools.com/jsref/jsref_isFinite.asp

答案 6 :(得分:0)

虽然我在这里非常晚了......

现在我们有<input>number类型的元素,用于让用户输入一个数字。它们包括内置验证以拒绝非数字条目。 More Info

<input id="number" type="number">

答案 7 :(得分:-2)

'^[0-9]*$'

答案 8 :(得分:-2)

如果你想要小数,这应该有效:

/^(?:\d+\.?)|(?:\d*\.\d+)$/