验证小数模式

时间:2013-09-19 16:15:54

标签: javascript regex validation

我使用以下模式进行十进制验证。

var pattern = /^([0-9]+)[.][0-9]{0,2}$/;

我只需要输入10位数字。 例如,

12345678.00

需要在点前输入8位数。 在点之后,2位数字是可选的。如何验证只在点号前输入8位数?

4 个答案:

答案 0 :(得分:1)

试试这个!

^[\d]{1,8}([\.|\,]\d{1,2})?$

此致..

答案 1 :(得分:0)

试试这个:

/^[0-9]{8}[.][0-9]{0,2}\b/g

基本上是指“点之前正好8位,点之后最多2位”。另外,如果你想要一些正则表达式的简写,你可以使用转义数字的\d

/^\d{8}[.]\d{0,2}\b/g

此外,您的问题并不清楚:如果用户输入3个或更多字符,您是否要匹配小数点后的两位数?如果是,请删除\b部分,它将对您有用

答案 2 :(得分:0)

使用

/^[0-9]{8}[.]([0-9]{2})?$/

这应该确保你在点之前有8位数字,并且在点之后恰好是0或2位数。

答案 3 :(得分:0)

这听起来像你真正想要的是:

/^[0-9]{8}(\.[0-9]{1,2})?$/

您也可以这样写:

/^\d{8}(\.\d\d?)?$/

此模式使点可选,如果存在,则需要一个或两个数字。 \d[0-9]的简写(它们在所有正则表达式中都不相同,但它们都在JavaScript中)。

正如你所写,你的模式需要小数点,即使没有十进制数字。因此12345678会失败,而12354678.会通过。这可能不是你想要的;事实上,我怀疑你认为第二个数字有效。