RegEx需要匹配数字到2位小数

geo*_*310 13 regex

我需要一些只能匹配小数到两位数的正则表达式.例如

123 =不匹配

12.123 =不匹配

12.34 =匹配

Pau*_*aul 22

^[0-9]*\.[0-9]{2}$ or ^[0-9]*\.[0-9][0-9]$
Run Code Online (Sandbox Code Playgroud)


Che*_*ddh 8

var regexp = /^[0-9]*(\.[0-9]{0,2})?$/;

//returns true
regexp.test('10.50')

//returns false
regexp.test('-120')

//returns true
regexp.test('120.35')

//returns true
regexp.test('120')
Run Code Online (Sandbox Code Playgroud)

  • 您是否阅读过问题“他们不想匹配整数”。他们想要精确匹配小数点后两位。 (3认同)

Grh*_*rhm 7

如果你正在寻找整场比赛,我会选择Paul的答案.

如果你想匹配一个数字witihn一行尝试: \d+\.\d\d(?!\d)

  • \d+ 一个或多个数字(相同[0-9])
  • \. 匹配句点字符
  • \d\d 匹配两位小数
  • (?!\d) 是否为前瞻,确保下一个字符不是数字.


Mar*_*sen 5

这在一定程度上取决于什么不应该匹配,什么应该匹配以及在什么情况下

例如,您测试的文本是否应该只包含数字?在这种情况下,你可以这样做:

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

但这将测试整个字符串,因此如果匹配应该作为更大整体的一部分来完成

如果它需要在一个更长的 styring 你可以做

/[0-9]+\.[0-9]{2}[^0-9]/
Run Code Online (Sandbox Code Playgroud)

但是如果字符串只是数字,那将会失败(因为它需要一个非数字来跟随数字)

如果您需要能够涵盖这两种情况,您可以使用以下内容:

/^[0-9]+\.[0-9]{2}$|[0-9]+\.[0-9]{2}[^0-9]/
Run Code Online (Sandbox Code Playgroud)