我使用以下模式进行十进制验证。
var pattern = /^([0-9]+)[.][0-9]{0,2}$/;
我只需要输入 10 位数字。例如,
12345678.00
点前需要输入 8 位数字。点后的 2 位数字是可选的。如何验证仅在点符号前输入 8 位数字?
我使用以下模式进行十进制验证。
var pattern = /^([0-9]+)[.][0-9]{0,2}$/;
我只需要输入 10 位数字。例如,
12345678.00
点前需要输入 8 位数字。点后的 2 位数字是可选的。如何验证仅在点符号前输入 8 位数字?
尝试这个!
^[\d]{1,8}([\.|\,]\d{1,2})?$
问候..
利用
/^[0-9]{8}[.]([0-9]{2})?$/
这应该确保您在点之前有 8 位数字,而在点之后正好有 0 或 2 位数字。
尝试这个:
/^[0-9]{8}[.][0-9]{0,2}\b/g
基本上意味着“点前正好 8 位,点后最多 2 位”。此外,如果你想要一些正则表达式速记,你可以使用\d
which 转义数字
/^\d{8}[.]\d{0,2}\b/g
此外,您的问题也不清楚:如果用户输入 3 个或更多字符,您是否要匹配小数点后的两位数字?如果是,则删除该\b
部分,它将为您工作
It sounds like what you really want is this:
/^[0-9]{8}(\.[0-9]{1,2})?$/
You can also write it like this:
/^\d{8}(\.\d\d?)?$/
This pattern makes the dot optional, and if it's present, requires either one or two digits after it. The \d
is shorthand for [0-9]
(they're not identical in all regex flavors, but they are in JavaScript).
As you've written it, your pattern requires the decimal point, even if there are no decimal digits. So 12345678
will fail, while 12354678.
will pass. That's probably not what you want; in fact, I doubt you'd consider the second number valid.