正则表达式 不为0的正整数和小数

时间:2022-03-16 06:34:17
正则表达式  不为0的正整数和小数(小数点后面4位)。

可以是: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]*))$ 可以是正数,也可以是负数.


不能为空.但可以为零.

#2


^(?!0)\d+(\.\d{1,4})?$

#3


引用 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]*.……


正则表达式 不为0的正整数和小数
不要为0 

#4


引用 2 楼  的回复:
^(?!0)\d+(\.\d{1,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.

应该可以。

#8


但是会匹配0.0,汗 正则表达式 不为0的正整数和小数

#9


引用 8 楼  的回复:
但是会匹配0.0,汗

正则表达式 不为0的正整数和小数
那咋解决?

#10


这种其实可以用:
		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


引用 12 楼  的回复:
调用IsDouble方法即可。


谢了。

#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]*))$ 可以是正数,也可以是负数.


不能为空.但可以为零.

#2


^(?!0)\d+(\.\d{1,4})?$

#3


引用 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]*.……


正则表达式 不为0的正整数和小数
不要为0 

#4


引用 2 楼  的回复:
^(?!0)\d+(\.\d{1,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.

应该可以。

#8


但是会匹配0.0,汗 正则表达式 不为0的正整数和小数

#9


引用 8 楼  的回复:
但是会匹配0.0,汗

正则表达式 不为0的正整数和小数
那咋解决?

#10


这种其实可以用:
		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


引用 12 楼  的回复:
调用IsDouble方法即可。


谢了。