检测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,})
知识点:
()表示可有可无
^正则开始
$正则结束
|或者
转义字符
{}次数,{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;
}
}