检测0、正整数、小数

预防:0.0.9、00065、215.

(^[1-9](0-9+)?(\.[0-9]{1,3})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9]{1,2})?$)

解析:

(^[1-9](0-9+)?(\.[0-9]{1,3})?$)        [1-9](0-9+)正整数,\.[0-9]{1,3}小数点后最少1位,最多3位小数。避免5.(+等价于 {0,1}

(^(0){1}$)           1个0

(^[0-9]\.[0-9]([0-9]{1,2})?$)    [0-9]\.表示0开头的小数,\.[0-9]小数点后必须跟1个数,([0-9]{1,2})?允许保留最少1位,最多两位(?等价于 {1,}

 

5位整数带两位小数

^([1-9]\d{0,4}|0)(\.\d{1,2})?$

 

知识点:

()表示可有可无

^正则开始

$正则结束

|或者

\转义字符

. 匹配除换行符以外的任意字符

\w 匹配字母或数字或下划线或汉字 等价于 '[^A-Za-z0-9_]'。

\s 匹配任意的空白符

\d 匹配数字

\b 匹配单词的开始或结束

{}次数,{1}出现1次,{1,3}出现1到3次,{1,}最少出现1次

+等价于 {0,1}

?等价于 {1,}

 js代码:

function checkreg(n){
           var reg1 = /^[1-9]([0-9]+)?(\.[0-9]{1,6})?$/;
           var reg2 = /^[0-9]\.[0-9]([0-9]{1,6})?$/;
           var reg3 = /^(0){1}$/;
           if(reg1.test(n)|| reg2.test(n)|| reg3.test(n)){
               return true;
           }else{
               return false;
           }
   }

最大32位数--->^([0-9]{1}|[1-9][0-9]\d{0,30})$

 

^[0-9]{1}$|^([1-9][0-9]\d{0,30})$

^[0-9]{1}$  个位数0-9

^([1-9][0-9]\d{0,30})$  多位数最大30

 

posted on 2020-03-12 16:50  茫无所知  阅读(121)  评论(0编辑  收藏  举报