1|0.\d{1,2}
^0[1-9]$ 如果第一位是0,则后面必须不为0
1.2:^[1-9][0-9]?$ 如果第一位不是0,则后面则任意
2.看包含小数点时
2.1 整数部分全为0
2.1.1:^00?\.0[1-9]$ 如果整数部分全部为0,小数第一位为0,则小数第二位就一定不为0
2.1.2:^00?\.[1-9][0-9]?$ 如果整数部分全部为0,小数第一位不为0,则第二位任意
结合2.1起来:^00?\.(?:0[1-9]|[1-9][0-9]?)$
2.1 整数部分不全为0
2.2.1:^0[1-9]\.[0-9]$ 如果整数部分第一位是0,第二位不为0,则小数部分任意
2.2.2:^[1-9][0-9]?\.[0-9]$ 如果整数部分第一位不为0,第二位任意,则小数部分任意
结合2.2起来:^(?:0[1-9]|[1-9][0-9]?)\.[0-9]$
全部就是:
^0[1-9]$|^[1-9][0-9]?$|^00?\.(?:0[1-9]|[1-9][0-9]?)$|^(?:0[1-9]|[1-9][0-9]?)\.[0-9]$
看起来是不是头晕,
判断具体的有限制的浮点数,有更多容易的方法,例如用你所熟悉的脚本语言,js,asp,vbs,php等等
if(小数点是否存在)
{//小数点存在
if(当整数部分"数值"大于0)
{
只用判断小数部分是二位,满足条件返回
}
else
{
整数数值等于0,只用判断小数"数值"大于0且位数小于2,满足条件返回
}
else{
小数点不存在,就是正整数,只用判断"数值"大于0且位数小于2,,满足条件返回
}
正则用来匹配字符很容易,但是这里直接用数值来判断比正则容易的多..
^(1|1\.[0]*|0?\.(?!0+$)[\d]+)$
JS测试:
/^(?!^[0.]+$)0\.\d+|1$/
搜索
/^[0]\.\d$/