正则表达式模式只有一个点并匹配整数和小数

Regex pattern to have only one dot and match integer and decimal numbers

我正在努力创建正确的正则表达式模式来匹配这些字符串:

"3" // true
"3." // true
"3.1" // true
"3.22" // true

这样的字符串应该匹配失败:

"3.." // false
"3.222" // false

我当前的正则表达式 /^\d+(\.\d{1,2})*$/ 只匹配十进制数字。我尝试了几次更新,但无法接受所有规则。

将小数部分设为可选 + 您忘记在第一个 d 之前放置 \,并从小数部分中删除 *

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