if((Regex.IsMatch(en1[i],"[^\\d]") || (Regex.IsMatch(en2[i],"[^\\d]"))))
{
alertstr += "<FONT style='COLOR:#ff0000'>错误:产品列表第"+(i+1).ToString()+"行产品数量不是正整数!</FONT><br>";
result = false;
}说白了就是我要验证en1[i]和en2[i]都必须为正整数  也不知道是我写法不对呢  还是正则表达式根本没整明白啊?   当我输入abc的时候   出错!  说什么输入字符串的格式不对   郁闷~~  眼看下班了   明天又是周末   会正则表达式的估计也不多  唉   愁啊愁   愁就白了头~~

解决方案 »

  1.   

    这就是详细出错信息:
    “/”应用程序中的服务器错误。
    --------------------------------------------------------------------------------输入字符串的格式不正确。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.FormatException: 输入字符串的格式不正确。源错误: 执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。  堆栈跟踪: 
    [FormatException: 输入字符串的格式不正确。]
       System.Number.ParseDecimal(String s, NumberStyles style, NumberFormatInfo info) +0
       System.Decimal.Parse(String s, NumberStyles style, IFormatProvider provider) +30
       System.Decimal.Parse(String s) +9
       SalesPromotion.Loan.ProductCarry.CheckProductList() +865
       SalesPromotion.Loan.ProductCarry.ButtonSaveOrder_Click(Object sender, EventArgs e) +25
       System.Web.UI.WebControls.Button.OnClick(EventArgs e) +108
       System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +57
       System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +18
       System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
       System.Web.UI.Page.ProcessRequestMain() +1292 
    --------------------------------------------------------------------------------
    版本信息: Microsoft .NET Framework 版本:1.1.4322.2032; ASP.NET 版本:1.1.4322.2032
      

  2.   

    if(Regex.IsMatch(s1,@"^\d+$") && Regex.IsMatch(s2,@"^\d+$"))
    {}
      

  3.   

    if((Regex.IsMatch(en1[i],@"^[0-9]*[1-9][0-9]*$") || (Regex.IsMatch(en2[i],@"^[0-9]*[1-9][0-9]*$"))))
      

  4.   

    条件不反阿因为你的判断条件是en1[i]和en2[i]中任一个含有 非 正整数如果是匹配正整数 而不是 非正整数 前面加!就行了!Regex.IsMatch()
      

  5.   

    我的条件刚好反了啊   大家请看if((Regex.IsMatch(en1[i],"[^\\d]") || (Regex.IsMatch(en2[i],"[^\\d]"))))
    {
    alertstr += "<FONT style='COLOR:#ff0000'>错误:产品列表第"+(i+1).ToString()+"行产品数量不是正整数!</FONT><br>";
    result = false;
    }在这里的if((Regex.IsMatch(en1[i],"[^\\d]") || (Regex.IsMatch(en2[i],"[^\\d]"))))
    意思是说  如果en1[i]或者en2[i]为正整数   则alertstr += "<FONT style='COLOR:#ff0000'>错误:产品列表第"+(i+1).ToString()+"行产品数量不是正整数!</FONT><br>";这是不对滴
      

  6.   

    不是滴 你的判断不是正整数 而是非正整数 你的判断是:如果en1[i]或者en2[i]中含有非正整数字符
      

  7.   

    和整数有关的正则。。
    晕。下面都有了。。你看看你到底要哪一个
    ^\d+$  //匹配非负整数(正整数 + 0) 
    ^[0-9]*[1-9][0-9]*$  //匹配正整数 
    ^((-\d+)|(0+))$  //匹配非正整数(负整数 + 0) 
    ^-[0-9]*[1-9][0-9]*$  //匹配负整数 
    ^-?\d+$    //匹配整数
      

  8.   

    大家是不是没明白我的意思啊    我的表格里必须要输入正整数   如果不是呢   就显示输入出错信息那我这样验证   if((Regex.IsMatch(en1[i],"[^\\d]") || (Regex.IsMatch(en2[i],"[^\\d]"))))
    这句话的意思是  如果   是正整数   现在我要取它的相反意思啊      也就是说   要整个什么  if  not  之类的 
    然后我下面才有这句alertstr += "<FONT style='COLOR:#ff0000'>错误:产品列表第"+(i+1).ToString()+"行产品数量不是正整数!</FONT><br>";我说明白了没有啊