当前位置: 代码迷 >> ASP.NET >> 求匹配正整数,正浮点数正则表达式解决办法
  详细解决方案

求匹配正整数,正浮点数正则表达式解决办法

热度:3667   发布时间:2013-02-25 00:00:00.0
求匹配正整数,正浮点数正则表达式
如題:

------解决方案--------------------------------------------------------
^[1-9][0-9]*$    //匹配正整数
^(?:[1-9][0-9]*\.[0-9]+|0\.(?!0+$)[0-9]+)$   //匹配正浮点数

------解决方案--------------------------------------------------------
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
※以下是引用9楼 lxcnn(过客) 在2007-06-27 09:08:43 的发言:
──────────────────────────────────────────
-_-#,能不能一次把要求说完,0.0也在正整数和正浮点数范围内吗,我孤陋寡闻
^(?:[1-9][0-9]*(?:\.[0-9]+)?|0\.[0-9]+)$
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
^(?:[1-9][0-9]*(?:\.[0-9]+)?|0\.[0-9]+)$
等价于
^[1-9][0-9]*(?:\.[0-9]+)?|0\.[0-9]+$

还有
^(?:[1-9][0-9]*(?:\.[0-9]+)?|0\.[0-9]+)$
匹配不了0

稍做修改
^(?:[1-9]\d*|0)(?:\.\d+)?$
------解决方案--------------------------------------------------------
#region 验证输入的值是不是数字的正则表达式
/// <summary>
/// 验证输入的值是不是数字的正则表达式
/// </summary>
/// <param name= "str "> 传入一个字符串 </param>
/// <returns> trur或是false </returns>
public static bool ValidateNumeric(string str)
{
if (!Regex.IsMatch(str, @ "^(-{0,1}|\+{0,1})[0-9]+(\.{0,1}[0-9]+)$ "))
{
throw new Exception( "输入的值不是数字,请重输 ");
}
else
{
return true;
}
}
完整写法,包括负数都可以,自己修改一下吧。
  相关解决方案