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

小脩 2012-05-21 02:42:48
正则表达式 不为0的正整数和小数(小数点后面4位)。

可以是:0.1
0.11
0.111
0.1111
1.1
1.11
1.111
1.1111
....
...全文
1880 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
小脩 2012-05-21
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 的回复:]
调用IsDouble方法即可。
[/Quote]

谢了。
dalmeeme 2012-05-21
  • 打赏
  • 举报
回复
调用IsDouble方法即可。
dalmeeme 2012-05-21
  • 打赏
  • 举报
回复
	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;
}

dalmeeme 2012-05-21
  • 打赏
  • 举报
回复
这种其实可以用:
		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位。
小脩 2012-05-21
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]
但是会匹配0.0,汗
[/Quote]

那咋解决?
dalmeeme 2012-05-21
  • 打赏
  • 举报
回复
但是会匹配0.0,汗
dalmeeme 2012-05-21
  • 打赏
  • 举报
回复
以上匹配:
0.25
2.52
0.0521
5
70.254

不匹配:
0
005.25
3.

应该可以。
dalmeeme 2012-05-21
  • 打赏
  • 举报
回复
^(?:0\.\d{1,4}|(?!0)\d+(?:\.\d{1,4})?)$
newxdlysk 2012-05-21
  • 打赏
  • 举报
回复
([1-9]\d*|0)(\.\d{1,4})?
dalmeeme 2012-05-21
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

^(?!0)\d+(\.\d{1,4})?$
[/Quote]
不对,有点问题

小脩 2012-05-21
  • 打赏
  • 举报
回复
[Quote=引用 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]*.……
[/Quote]


不要为0
dalmeeme 2012-05-21
  • 打赏
  • 举报
回复
^(?!0)\d+(\.\d{1,4})?$
觉悟之时 2012-05-21
  • 打赏
  • 举报
回复
^(([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]*))$ 可以是正数,也可以是负数.


不能为空.但可以为零.

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧