C#(用函數判斷輸入的值是否是數字)

來源:互聯網
上載者:User
-、開題  上次的項目(C#)恰好碰到這個問題,開始以為C#肯定會提供類似VB的IsNumberic的函數吧,找了半天沒有找到(可能有吧不確定拉),項目緊,算了自己寫一個吧,寫完總感覺不是最優的.蹭日這次積月累的機會,大家集思廣益,有想法的說出來,有行動的寫出來.公認最好的函數就加到C#公用函數.輸入任何都是允許的,只要輸入的字串每一個字元是數字就OK,所以:
+123456,-123456,123.456,00.123456,.12345678 不符合要求
00123456 符合要求  二討論方法一:public static bool ISNumber(string p_strInput)
  {
   if (p_strInput == null)
   {
    return false;
   }
   return Regex.IsMatch(p_strInput,@"^\d+$",RegexOptions.Singleline);
  } 方法二:public static bool IsNumber(String str)
  {
   for(int i=0;i<str.Length;i++)
   {
    if(!Char.IsNumber(str,i))
     return false;
   }
   return true;
  } 方法三:public static bool IsLong(string para)
  {
   long temp;
   try
   {
    temp = long.Parse(para);
    return true;
   }
   catch
   {
    return false;
   }
  } 等等。  三:總結1. JustinSun 的正則表達,顯的簡潔有力,而且隨需求變化可以相應改變Regex,能夠做到靈活機動
2.
我的方法思路非常簡單有效,但需求發生變化後,不能夠靈活機動
3.
AlexYFeng 的方式也不錯的方法之一 , 雖然和需求有點出入 , Harry 所說
其他方式還有在 C# 中去調用 vb.net IsNumberic也是可以的;等等

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.