[轉]c#判斷輸入文字是否是數字


(轉載請刪除括號里的內容)

c#判斷輸入文字是否是數字(轉)
 

方案一:
/**//// <summary>
/// 名稱:IsNumberic
/// 功能:判斷輸入的是否是數字
/// 參數:string oText:源文本
/// 返回值: bool true:是 false:否
/// </summary>
public bool IsNumberic(string oText)
{
try
{
int var1=Convert.ToInt32 (oText);
return true;
}
catch
{
return false;
}
}
     try catch方法
     例:
     try
     {
       Convert.ToInt32("123"):
       Console.Write("是數字");
     }
     catch(Exception ex)
     {
       Console.Write("非數字");
     }
     注:如果有很多字符串要求判斷,此方法需要大量的try catch 以及finally來處理后續的程序.不建議使用此方法。

改進一下:
因為可以轉int 可以轉Decimal
    public bool IsNumberic(string oText)
    {
        try
        {
            Decimal Number = Convert.ToDecimal (oText);
            return true;
        }
        catch
        {
            return false;
        }
    }

方案二:
//如果是純數字還可以采用ASCII碼進行判斷
/// <summary>  
/// 判斷是否是數字  
/// </summary>  
/// <param name="str">字符串</param>  
/// <returns>bool</returns>  
public bool IsNumeric(string str)  
{  
    if (str == null || str.Length == 0)  
        return false;  
    System.Text.ASCIIEncoding ascii = new System.Text.ASCIIEncoding();  
    byte[] bytestr = ascii.GetBytes(str);  
    foreach (byte c in bytestr)  
    {  
        if (c < 48 || c > 57)  
        {  
            return false;  
        }  
    }  
    return true;  
}
方案三:
     正則表達式方法
     例:
     //引用正則表達式類
     using   System.Text.RegularExpressions;
     Regex   reg=new   Regex("^[0-9]+$");
     Match   ma=reg.Match(text);
     if(ma.Success)
     {
      //是數字
     }
     else
     {
     //不是數字
     }
     注:此方法快捷,但不太容易掌握,尤其是正則表達式公式,如果有興趣的朋友可以好好研究,這東西很好用的,建議使用。
方案四:
     Double.TryParse方法
     例:
     bool isNum=System.Double.TryParse("所要判斷的字符串" ,System.Globalization.NumberStyles.Integer,null,out );
     注:此方法快捷,方便,很容易被掌握,但是參數很多,有興趣的朋友可以研究一下,建議使用。
    參數不好用
    沒有使用過
方法五:
新建一個類
using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;
namespace LBC.Number
{
    /// <summary>
    /// 數字判斷的類
    /// </summary>
    public class NumberClass
    {
        /// <summary>
        /// 判斷是否是數字
        /// </summary>
        /// <param name="strNumber">要判斷的字符串</param>
        /// <returns></returns>
        public static bool IsNumber(String strNumber)
        {
            Regex objNotNumberPattern = new Regex("[^0-9.-]");
            Regex objTwoDotPattern = new Regex("[0-9]*[.][0-9]*[.][0-9]*");
            Regex objTwoMinusPattern = new Regex("[0-9]*[-][0-9]*[-][0-9]*");
            String strValidRealPattern = "^([-]|[.]|[-.]|[0-9])[0-9]*[.]*[0-9]+___FCKpd___0quot;;
            String strValidIntegerPattern = "^([-]|[0-9])[0-9]*___FCKpd___0quot;;
            Regex objNumberPattern = new Regex("(" + strValidRealPattern + ")|(" + strValidIntegerPattern + ")");
            return !objNotNumberPattern.IsMatch(strNumber) &&
            !objTwoDotPattern.IsMatch(strNumber) &&
            !objTwoMinusPattern.IsMatch(strNumber) &&
            objNumberPattern.IsMatch(strNumber);
        }
        /// <summary>
        /// 判斷是否是int類型
        /// </summary>
        /// <param name="Value">要判斷的字符串</param>
        /// <returns></returns>
        public static bool IsInt(string Value)
        {
            return Regex.IsMatch(Value, @"^[+-]?\d*___FCKpd___0quot;);
        }
        /// <summary>
        /// 判斷是否是數字
        /// </summary>
        /// <param name="Value">要判斷的字符串</param>
        /// <returns></returns>
        public static bool IsNumeric(string Value)
        {
            return Regex.IsMatch(Value, @"^[+-]?\d*[.]?\d*___FCKpd___0quot;);
        }
    }
}


---------------------
作者:努力學習者
來源:CNBLOGS
原文:https://www.cnblogs.com/jone606/articles/2319089.html
版權聲明:本文為作者原創文章,轉載請附上博文鏈接!
內容解析By:CSDN,CNBLOG博客文章一鍵轉載插件


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM