可以这样 using System; using System.Collections.Generic; using System.Text; using System.Text.RegularExpressions; using System.Data; using System.Windows.Forms;namespace StandWork_Mobile.App_Code.Common { class CommenClass { public static bool StringIsInt(string strInt) { if (strInt != null && Regex.IsMatch(strInt, @"^\d+$")) return true; else return false; } } }
int.TryParse...只适用于.NET 2.0以上版本... int result=0; int.TryParse(yourstring, out result); if(result>0) { ... }
int i = 0; string str = "123"; if (!int.TryParse(str, out i) { //不是整型 } else { //是整型 }
using System;
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;
using System.Data;
using System.Windows.Forms;namespace StandWork_Mobile.App_Code.Common
{
class CommenClass
{
public static bool StringIsInt(string strInt)
{
if (strInt != null && Regex.IsMatch(strInt, @"^\d+$"))
return true;
else
return false;
}
}
}
int result=0;
int.TryParse(yourstring, out result);
if(result>0)
{
...
}
int i = 0;
string str = "123";
if (!int.TryParse(str, out i)
{
//不是整型
}
else
{
//是整型
}
int.TryParse(yourstring, out result);
if(result>0)
{
...
}这方法第一回见呢,不错哦
{
char[] chaStr = strInt.ToCharArray();
bool getFirst = false;
foreach (char c in chaStr)
{
if (!getFirst)
{
if (!c.Equals('+'))
{
return false;
}
getFirst = true;
}
else
{
if (!char.IsDigit(c))
{
return false;
}
}
}
return true;
}
public static bool IsPositiveInt(string strInt)
{
char[] chaStr = strInt.ToCharArray();
bool getFirst = false;
foreach (char c in chaStr)
{
if (!getFirst)
{
if (c.Equals('+') || char.IsDigit(c))
{
getFirst = true;
continue;
}
else
{
return false;
}
}
else
{
if (!char.IsDigit(c))
{
return false;
}
}
}
return true;
}
/// 检测是否为正整数
/// </summary>
/// <param name="number">正整数</param>
/// <returns>返回 true or false</returns>
public static bool isNumber(string number)
{
bool flag = true;
string strExp = @"^[1-9][0-9]{0,}$";
Regex r = new Regex(strExp);
Match m = r.Match(number);
if (!m.Success)
{
flag = false;
}
return flag;
}
而,.net中 最大是21474836479999999999(10个9)在.net 中是整形,没有问题,可是插入数据库的时候,却有问题了。
if(Regexp.IsMatch(this.TextBox1.Text))
--------------------------不明白这句话是什么意思?勉强理解了一下“0”,但-99999999为什么不能是整数呢?要知道整数在.net里最小值是-2147483648。整数可是32位的啊。
“sql server 里的整型,最大是999999999(9个9) ”
这句不明白了又。
“sql server 里的整型,最大是999999999(9个9) ”
这句不明白了又。
string str = "-123";
if (!int.TryParse("-" + str, out i)
{
//不是正整型
}
else
{
//是正整型
}
{
if(s.Trim().IsNullOrEmpty())
{
return false;
} bool b = true;
foreach(char c in s)
{
if(c>'9'||c<'0')
{
b = false;
}
} return b;
}没有测试
"^([1-9]{1}[0-9]{0," & maxLen - 1 & "}|0)?$"回答hbxtlhx的问题。SQL SERVER的表的字段被定义成int时,最大可以输入9个9,不信你试下。
/// <summary>
/// 判断字符串是否为数字
/// </summary>
/// <param name="str">要判断的字符串对象</param>
/// <returns></returns>
public static bool IsNumber(string str)
{
return Regex.IsMatch(str, @"^\d+$");
} /// <summary>
/// 判断字符串是否为正整数
/// </summary>
/// <param name="str">要判断的字符串对象</param>
/// <returns></returns>
public static bool IsInt(string str)
{
return Regex.IsMatch(str, @"^(0|([1-9]\d*))$");
}当然 考虑到数值范围 如int32 int64等 还需要改正
if (int.TryParse(str, out tmp) && tmp>0)
{
//str字符串表示的是一个正整数
}
else
{
//str表示的是非整数或是小于0的整数
}
using System;
using System.Collections.Generic;
using System.Text;
using System.Globalization;namespace TempTestA1
{
class Class7
{
public static void Main()
{
int r = 0;
// 只允许前导空白、结尾空白、千分位符
Console.WriteLine("下列返回 true");
Console.WriteLine(int.TryParse("123456", NumberStyles.AllowLeadingWhite | NumberStyles.AllowThousands | NumberStyles.AllowTrailingWhite, null, out r));
Console.WriteLine(int.TryParse("123,456", NumberStyles.AllowLeadingWhite | NumberStyles.AllowThousands | NumberStyles.AllowTrailingWhite, null, out r));
Console.WriteLine(int.TryParse(" \r\n 123,456 \r\n ", NumberStyles.AllowLeadingWhite | NumberStyles.AllowThousands | NumberStyles.AllowTrailingWhite, null, out r));
Console.WriteLine(int.TryParse("0", NumberStyles.AllowLeadingWhite | NumberStyles.AllowThousands | NumberStyles.AllowTrailingWhite, null, out r)); // 正负符号、16 进制、小数点等不允许
Console.WriteLine("下列返回 false");
Console.WriteLine(int.TryParse("+123456", NumberStyles.AllowLeadingWhite | NumberStyles.AllowThousands | NumberStyles.AllowTrailingWhite, null, out r));
Console.WriteLine(int.TryParse("-0", NumberStyles.AllowLeadingWhite | NumberStyles.AllowThousands | NumberStyles.AllowTrailingWhite, null, out r));
Console.WriteLine(int.TryParse("123.456", NumberStyles.AllowLeadingWhite | NumberStyles.AllowThousands | NumberStyles.AllowTrailingWhite, null, out r));
Console.WriteLine(int.TryParse("0xb345", NumberStyles.AllowLeadingWhite | NumberStyles.AllowThousands | NumberStyles.AllowTrailingWhite, null, out r));
} }
}
-----------
这个方法最好的。