正则表达式强制小数点后2位数

Man*_*aha 3 javascript regex

我需要使用JavaScript验证数字字符串,以确保该数字正好有两个小数位.

只有在验证时才会通过验证

  1. 该数字恰好有两位小数
  2. 小数点前至少有一位数.(可能为零)
  3. 小数点前的数字不能以多于零开始.

有效数字:

0.01
0.12
111.23
1234.56
012345.67
123.00
0.00
Run Code Online (Sandbox Code Playgroud)

数字无效:

.12
1.1
0.0
00.00
1234.
1234.567
1234
00123.45
abcd.12
12a4.56
1234.5A
Run Code Online (Sandbox Code Playgroud)

我试过了正则表达式[0-9][\.][0-9][0-9]$,但它允许小数点之前的字母之类的12a4.56.

小智 5

.匹配任何字符,它不会执行您认为的操作。你必须逃避它。另外,您还有两个错误;尝试

^[0-9]+\.[0-9][0-9]$
Run Code Online (Sandbox Code Playgroud)

相反,甚至更好的是,使用\d十进制数字:

^\d+\.\d\d$
Run Code Online (Sandbox Code Playgroud)


pha*_*t0m 5

这包括所有要求:

^(0|0?[1-9]\d*)\.\d\d$
Run Code Online (Sandbox Code Playgroud)
  • 该数字恰好有两位小数
    • 由于非选择性而非常满意 \.\d\d$

其他两个条件可以重述如下:

  • 小数点前的数字为零
  • 或者只有一个零的数字,然后是一个以零开头的数字

这包括以下两种情况:

  • 0
  • 0?[1-9]\d*