可以是:0.1
0.11
0.111
0.1111
1.1
1.11
1.111
1.1111
....
13 个解决方案
#1
^(([1-9]+[0-9]*.{1}[0-9]+)|([0].{1}[1-9]+[0-9]*)|([1-9][0-9]*)|([0][.][0-9]+[1-9]*))$ 必须是正数
Js代码
function isPositiveNumber(value)//必须是正数 不能为空.但可以为零
{
var re=new RegExp(/^(([1-9]+[0-9]*.{1}[0-9]+)|([0].{1}[1-9]+[0-9]*)|([1-9][0-9]*)|([0][.][0-9]+[1-9]*))$/);
var result;
if(re.test(value))
{
result=true;
}
else
{
result=false;
}
return result;
}
^(-)?(([1-9]+[0-9]*.{1}[0-9]+)|([0].{1}[1-9]+[0-9]*)|([1-9][0-9]*)|([0][.][0-9]+[1-9]*))$ 可以是正数,也可以是负数.
不能为空.但可以为零.
Js代码
function isPositiveNumber(value)//必须是正数 不能为空.但可以为零
{
var re=new RegExp(/^(([1-9]+[0-9]*.{1}[0-9]+)|([0].{1}[1-9]+[0-9]*)|([1-9][0-9]*)|([0][.][0-9]+[1-9]*))$/);
var result;
if(re.test(value))
{
result=true;
}
else
{
result=false;
}
return result;
}
^(-)?(([1-9]+[0-9]*.{1}[0-9]+)|([0].{1}[1-9]+[0-9]*)|([1-9][0-9]*)|([0][.][0-9]+[1-9]*))$ 可以是正数,也可以是负数.
不能为空.但可以为零.
#2
^(?!0)\d+(\.\d{1,4})?$
#3
不要为0
#4
不对,有点问题
#5
([1-9]\d*|0)(\.\d{1,4})?
#6
^(?:0\.\d{1,4}|(?!0)\d+(?:\.\d{1,4})?)$
#7
以上匹配:
0.25
2.52
0.0521
5
70.254
不匹配:
0
005.25
3.
应该可以。
0.25
2.52
0.0521
5
70.254
不匹配:
0
005.25
3.
应该可以。
#8
但是会匹配0.0,汗
#9
那咋解决?
#10
这种其实可以用:
封装成个方法,就是先判断是否是大于0的实数,再判断小数点后最多4位。
string s = "0.0533";
double value = 3.4556;
if (double.TryParse(s, out value))
if (value > 0)
return Regex.IsMatch(s, @"\.\d{1,4}");
return false;
封装成个方法,就是先判断是否是大于0的实数,再判断小数点后最多4位。
#11
protected void Page_Load(object sender, EventArgs e)
{
string[] values = { "3.456", "0", "0.0", "0.0014", "3.00235" };
foreach (string value in values)
Response.Write(value + ":" + IsDouble(value) + "<br/>");
}
public bool IsDouble(string checkedStr)
{
double value;
if (double.TryParse(checkedStr, out value))
if (value > 0)
return Regex.IsMatch(checkedStr, @"\.\d{1,4}$");
return false;
}
#12
调用IsDouble方法即可。
#13
谢了。
#1
^(([1-9]+[0-9]*.{1}[0-9]+)|([0].{1}[1-9]+[0-9]*)|([1-9][0-9]*)|([0][.][0-9]+[1-9]*))$ 必须是正数
Js代码
function isPositiveNumber(value)//必须是正数 不能为空.但可以为零
{
var re=new RegExp(/^(([1-9]+[0-9]*.{1}[0-9]+)|([0].{1}[1-9]+[0-9]*)|([1-9][0-9]*)|([0][.][0-9]+[1-9]*))$/);
var result;
if(re.test(value))
{
result=true;
}
else
{
result=false;
}
return result;
}
^(-)?(([1-9]+[0-9]*.{1}[0-9]+)|([0].{1}[1-9]+[0-9]*)|([1-9][0-9]*)|([0][.][0-9]+[1-9]*))$ 可以是正数,也可以是负数.
不能为空.但可以为零.
Js代码
function isPositiveNumber(value)//必须是正数 不能为空.但可以为零
{
var re=new RegExp(/^(([1-9]+[0-9]*.{1}[0-9]+)|([0].{1}[1-9]+[0-9]*)|([1-9][0-9]*)|([0][.][0-9]+[1-9]*))$/);
var result;
if(re.test(value))
{
result=true;
}
else
{
result=false;
}
return result;
}
^(-)?(([1-9]+[0-9]*.{1}[0-9]+)|([0].{1}[1-9]+[0-9]*)|([1-9][0-9]*)|([0][.][0-9]+[1-9]*))$ 可以是正数,也可以是负数.
不能为空.但可以为零.
#2
^(?!0)\d+(\.\d{1,4})?$
#3
不要为0
#4
不对,有点问题
#5
([1-9]\d*|0)(\.\d{1,4})?
#6
^(?:0\.\d{1,4}|(?!0)\d+(?:\.\d{1,4})?)$
#7
以上匹配:
0.25
2.52
0.0521
5
70.254
不匹配:
0
005.25
3.
应该可以。
0.25
2.52
0.0521
5
70.254
不匹配:
0
005.25
3.
应该可以。
#8
但是会匹配0.0,汗
#9
那咋解决?
#10
这种其实可以用:
封装成个方法,就是先判断是否是大于0的实数,再判断小数点后最多4位。
string s = "0.0533";
double value = 3.4556;
if (double.TryParse(s, out value))
if (value > 0)
return Regex.IsMatch(s, @"\.\d{1,4}");
return false;
封装成个方法,就是先判断是否是大于0的实数,再判断小数点后最多4位。
#11
protected void Page_Load(object sender, EventArgs e)
{
string[] values = { "3.456", "0", "0.0", "0.0014", "3.00235" };
foreach (string value in values)
Response.Write(value + ":" + IsDouble(value) + "<br/>");
}
public bool IsDouble(string checkedStr)
{
double value;
if (double.TryParse(checkedStr, out value))
if (value > 0)
return Regex.IsMatch(checkedStr, @"\.\d{1,4}$");
return false;
}
#12
调用IsDouble方法即可。
#13
谢了。