我使用以下模式进行十进制验证。
var pattern = /^([0-9]+)[.][0-9]{0,2}$/;
我只需要输入10位数字。 例如,
12345678.00
需要在点前输入8位数。 在点之后,2位数字是可选的。如何验证只在点号前输入8位数?
答案 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.
会通过。这可能不是你想要的;事实上,我怀疑你认为第二个数字有效。