群里有小伙伴发了一道正则的题目。
html
解法以下:测试
^([1-9][0-9]*)+(\.[0-9]{1,2})$
问题来了,$ 前面要不要加问号呢?
改成以下:code
^([1-9][0-9]*)+(\.[0-9]{1,2})?$
能够看出这个正则兼容了整数。htm
从最终用户的角度来说,加了 问号(?)更加友好。blog
开始用了 ^([1-9]|[0-9]{0,})(.[0-9]{1,2})?$
点(.)没有转义,变成了 Any Char,测试 0w1
也经过了,正则失败。
get
改成 ^([1-9]|[0-9]{0,})(\.[0-9]{1,2})?$
,看起来是没问题,可是测试 00.11 时经过了,这个正则不对。
class
最终改成 ^([1-9][0-9]*)+(\.[0-9]{1,2})$
,再友好点就加上问号 ^([1-9][0-9]*)+(\.[0-9]{1,2})?$
im