/^([0-9](.\d)?)$/.test("211")==true;
??
为啥会这样能,怎么能匹配3位数字呢?奇怪...

解决方案 »

  1.   


    正则写的有点乱,楼主的问题主要出在小数“.”没有转义
    另外外层()没有必要,一会用[0-9],一会用\d使得可读性比较差
    /^\d(\.\d)?$/
      

  2.   

    /^([0-9](.\d)?)$/.test("211")==true;~匹配行首,经跟着0-9数字一次,.这里不是转意,表示匹配任意字符紧跟着一个数字一次.为可选项 所以这个表达示可以匹配单个数字,数字任意字符和数字的三位组合 ,  但不能匹配二位的数字。