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)
如果你正在寻找整场比赛,我会选择Paul的答案.
如果你想匹配一个数字witihn一行尝试: \d+\.\d\d(?!\d)
\d+
一个或多个数字(相同[0-9]
) \.
匹配句点字符 \d\d
匹配两位小数 (?!\d)
是否为前瞻,确保下一个字符不是数字.这在一定程度上取决于什么不应该匹配,什么应该匹配以及在什么情况下
例如,您测试的文本是否应该只包含数字?在这种情况下,你可以这样做:
/^[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)