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

前端技术 2023/09/09 C#

方案一: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);
}

本文地址:https://www.stayed.cn/item/25201

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。