方案一: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=newRegex("[0-9]*[-][0-9]*[-][0-9]*");
StringstrValidRealPattern="^([-]|[.]|[-.]|[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);
}
方案三:遍历
a)
public bool isnumeric(string str)
{
char[]ch=new char[str.Length];
ch=str.ToCharArray();
for(inti=0;i {
if(ch[i]<48 || ch[i]>57)
return false;
}
returntrue;
}
b)
public bool IsInteger(string strIn) {
bool bolResult=true;
if(strIn=="") {
bolResult=false;
}
else {
foreach(char Char in strIn) {
if(char.IsNumber(Char))
continue;
else {
bolResult=false;
break;
}
}
}
return bolResult;