我需要为以下场景创建一个正则表达式。
它只能有数字和一个点或逗号。
第一部分可以有一到三位数。 第二部分可以是点或逗号。 第三部分可以有一位到两位数。
有效的场景是
123,12
123.12
123,1
123
12,12
12.12
1,12
1.12
1,1
1.1
1
到目前为止我想出了这个表达式
\d{1,3}(?:[.,]\d{1,2})?
但是效果不是很好。例如,输入 11:11 被标记为有效。
请您参考如下方法:
你需要输入anchors围绕你的表情:
^\d{1,3}(?:[.,]\d{1,2})?$
^ 将匹配字符串的开头
$ 会匹配字符串的结尾
如果缺少这些 anchor ,它将部分匹配您的字符串,因为最后一部分是可选的,意味着在“11:11”它可以匹配冒号之前的数字,第二个匹配将匹配冒号之后的数字冒号。
