首先问一个问题,别见怪,我还不知道呢,正则表达式是不是通用的,还是每种语言都有自己的正则表达式规则?^[0-9]+\.{0,1}[0-9]{0,2}$这是看到别人写的,匹配:整数或小数。但是我现在这存在bug,例如:12.小数点后面不带数字一样可以匹配的,敢问一句,数学中可以这样写小数的吗?大家可以改一下,或者有更好的都可以发上来讨论一下,谢谢。

解决方案 »

  1.   

    不同语言用的是不同的正则引擎,行为会有差异。但大多数语法相同。(^\d+$)|(^\d+\.\d{1,2}$)
      

  2.   

    /// <summary>
    /// 验证字符串是否是整数。
    /// </summary>
    /// <param name="checkedStr">需验证的字符串。</param>
    /// <returns></returns>
    public static bool IsInteger(string checkedStr)
    {
    return Regex.IsMatch(checkedStr, @"^(-?[1-9]\d*|0)$");
    }
      

  3.   

    /// <summary>
    /// 验证字符串是否是实数。
    /// </summary>
    /// <param name="checkedStr">需验证的字符串。</param>
    /// <returns></returns>小数
    public static bool IsNumeric(string checkedStr)
    {
    if (IsInteger(checkedStr))
    return true;
    else
    return Regex.IsMatch(checkedStr, @"^-?([1-9]\d*|0).\d+$");
    }
      

  4.   

    常用正则表达式大全
    http://www.xunxt.com/forum.php?mod=viewthread&tid=32&fromuid=1