C#判断一个String是否为数字类型

2019-12-30 12:46:09王冬梅
本文主要介绍C#判断一个String是否为数字类型几种的方法,需要的朋友可以参考下。  

方案一:Try...Catch(执行效率不高)

 

复制代码 private bool IsNumberic(string oText)
{
    try
    {
        int var1=Convert.ToInt32 (oText);
        return true;
    }
    catch
    {
        return false;
    }
}

 

方案二:正则表达式(推荐)

a)

 

复制代码 public static bool IsNumeric(string value)
{
    return Regex.IsMatch(value, @"^[+-]?/d*[.]?/d*$");
}
public static bool IsInt(string value)
{
    return Regex.IsMatch(value, @"^[+-]?/d*$");
}
public static bool IsUnsign(string value)
{
    return Regex.IsMatch(value, @"^/d*[.]?/d*$");
}

 

b)

 

复制代码 using System;
using System.Text.RegularExpressions;

 

public 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]+$";
    String strValidIntegerPattern="^([-]|[0-9])[0-9]*$";
    Regex objNumberPattern =new Regex("(" + strValidRealPattern +")|(" + strValidIntegerPattern + ")");

    return !objNotNumberPattern.IsMatch(strNumber) &&
        !objTwoDotPattern.IsMatch(strNumber) &&
        !objTwoMinusPattern.IsMatch(strNumber) &&
        objNumberPattern.IsMatch(strNumber);
}