请给段代码,最好是用现成的一个函数就能解决。谢谢
42 个解决方案
#1
正则表达式
#2
\d+
#3
如果只是判断是否为全为数字,而不管0的位置,也就是00123这样也算合法,用下面的
private bool CheckNum(string src)
{
if (System.Text.RegularExpressions.Regex.IsMatch(src, @"^[0-9]+$"))
return true;
return false;
}
否则用int.TryParse吧
private bool CheckNum(string src)
{
if (System.Text.RegularExpressions.Regex.IsMatch(src, @"^[0-9]+$"))
return true;
return false;
}
否则用int.TryParse吧
#4
还有,就是,你可以用int.parse之类的类型转换,如果转换成功,也说明是数字
#5
正则吧
"^\d+$"
或者如果不是很长的话可以用long.TryParse
"^\d+$"
或者如果不是很长的话可以用long.TryParse
#6
public static bool IsNum(String str)
{
for(int i=0;i<str.Length;i++)
{
if(str[i]<='0' || str[i]>='9')
return false;
}
return true;
}
{
for(int i=0;i<str.Length;i++)
{
if(str[i]<='0' || str[i]>='9')
return false;
}
return true;
}
#7
正则表达式效率较低
#8
参考
http://www.itepub.net/html/kaifajingcui/C_/2006/0514/30153.html
http://www.itepub.net/html/kaifajingcui/C_/2006/0514/30153.html
#9
public static bool IsNum(String str)
{
for(int i=0;i<str.Length;i++)
{
if(str[i]<='0' || str[i]>='9')
return false;
}
return true;
}
我用的这个
{
for(int i=0;i<str.Length;i++)
{
if(str[i]<='0' || str[i]>='9')
return false;
}
return true;
}
我用的这个
#10
正则吧
"^\d+$"
这个我还是第一次看到,过客和后面几位的方法是可行的,但我想了解一下如何用正则来解决这个任务,能给具体代码吗,是不是也是System.Text.RegularExpressions这样?
"^\d+$"
这个我还是第一次看到,过客和后面几位的方法是可行的,但我想了解一下如何用正则来解决这个任务,能给具体代码吗,是不是也是System.Text.RegularExpressions这样?
#11
过客的int.TryParse,会不会溢出?
#12
int。TryParse和long.Tryparses在2003中似乎没有? 只有parse?
#13
当然要考虑范围,如果你完全无法确定它可能存在的范围,用正则的那个吧,正则的方法虽然不是效率最高的,但灵活性较好
如果不是极其频繁的检测,看不出性能差异的
如果不是极其频繁的检测,看不出性能差异的
#14
static bool IsNum(string src)
{
for (int i = 0; i < src.Length; i++)
{
if(!Char.IsDigit(src[i]))
return false;
}
return true;
}
我也写了个
{
for (int i = 0; i < src.Length; i++)
{
if(!Char.IsDigit(src[i]))
return false;
}
return true;
}
我也写了个
#15
差不多相当于及其频繁的检测,即每行的号码我都需需要验证是否合法手机号码。
过客,正则的具体代码是怎样的,我已经5年没有编程了,想当初也是csdn的高手,呵呵
过客,正则的具体代码是怎样的,我已经5年没有编程了,想当初也是csdn的高手,呵呵
#16
哦,搞错,是频繁的检测的话,那种代码效率最高
#17
原来是前辈,失敬,我上面给的就是正则方法的代码啊
private bool CheckNum(string src)
{
if (System.Text.RegularExpressions.Regex.IsMatch(src, @"^[0-9]+$"))
return true;
return false;
}
如果说验证是否为合法的手机号码,那还得用正则
private bool CheckNum(string src)
{
if (System.Text.RegularExpressions.Regex.IsMatch(src, @"^1(3\d|5[389])\d{8}$"))
return true;
return false;
}
如果是频繁检测,可以这样提高效率,当然,只是在频繁检测的情况下
System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex(@"^1(3\d|5[389])\d{8}$", RegexOptions.Compiled);
private bool CheckNum(string src)
{
if (reg.IsMatch(src))
return true;
return false;
}
我倒是用for循环测过正则的效率,但是没有用大量的数据源测过,你可以用你的数据源测一下,看能否达到你的要求
private bool CheckNum(string src)
{
if (System.Text.RegularExpressions.Regex.IsMatch(src, @"^[0-9]+$"))
return true;
return false;
}
如果说验证是否为合法的手机号码,那还得用正则
private bool CheckNum(string src)
{
if (System.Text.RegularExpressions.Regex.IsMatch(src, @"^1(3\d|5[389])\d{8}$"))
return true;
return false;
}
如果是频繁检测,可以这样提高效率,当然,只是在频繁检测的情况下
System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex(@"^1(3\d|5[389])\d{8}$", RegexOptions.Compiled);
private bool CheckNum(string src)
{
if (reg.IsMatch(src))
return true;
return false;
}
我倒是用for循环测过正则的效率,但是没有用大量的数据源测过,你可以用你的数据源测一下,看能否达到你的要求
#18
Regex.isMatch("字符串",@"^(\d)+$")
#19
来晚了,都说完了。
#20
检验手机号码的正则表达式^1(3\d|5[389])\d{8}$比较牛,赞一个
#21
RegexOptions是在哪个using里面的?我编译通不过
#22
using System.Text.RegularExpressions;
#23
找到了,是using System.Text.RegularExpressions;
不过我还有一个问题,reg并没有在CheckNum中作任何引用,这个似乎不合常理?
不过我还有一个问题,reg并没有在CheckNum中作任何引用,这个似乎不合常理?
#24
过客,你有msdn否,我买了一张盗版的dvd,说是有msdn,结果是2个6.0加一个2003,根本没有msdn,搞得我现在很被动,如果有的话,我可以开个ftp
#25
因该用正则表达式比较简单和通用吧
#26
呵呵,我这教育网,从我这传还不如你在迅雷上搜索来的快
reg在这里用到了
if (reg.IsMatch(src))
reg在这里用到了
if (reg.IsMatch(src))
#27
可以去 微软的网站上 找 msdn 啊。在线的。
#28
bool IsNum(string src)
{
for (int i = 0; i < (src.Length)/2; i++)
{
if(!Char.IsDigit(src[i]))
return false;
}
for(i = (src.Length)/2; i<src.Length;i++)
{
if(!Char.IsDigit(src[i]))
return false;
}
return true;
}
{
for (int i = 0; i < (src.Length)/2; i++)
{
if(!Char.IsDigit(src[i]))
return false;
}
for(i = (src.Length)/2; i<src.Length;i++)
{
if(!Char.IsDigit(src[i]))
return false;
}
return true;
}
#29
强!
#30
不要那么难吧,
在
try
{
这里将字符串转换为int ,如果能转换,就不会出错,如果不能转换,就会执行catch语句
}
例如
try
{
Convert.ToInt32(某变量) ;// 如果不能转换,就会进行捕捉错误
}
catch (Exception AAA)
{
这里提示这个变量不是全是数字
}
楼主理解了吗?
在
try
{
这里将字符串转换为int ,如果能转换,就不会出错,如果不能转换,就会执行catch语句
}
例如
try
{
Convert.ToInt32(某变量) ;// 如果不能转换,就会进行捕捉错误
}
catch (Exception AAA)
{
这里提示这个变量不是全是数字
}
楼主理解了吗?
#31
正则表达式
#32
public static bool IsNum(string Str)
{
bool blResult = true;
if (Str == "")
{
blResult = false;
}
else
{
foreach (char Char in Str)
{
if (!Char.IsNumber(Char))
{
blResult = false;
break;
}
}
if (blResult)
if (int.Parse(Str) == 0)
{
blResult = false;
}
}
return blResult;
}
if (!IsNum(rqID))
{
}
我这么用!
{
bool blResult = true;
if (Str == "")
{
blResult = false;
}
else
{
foreach (char Char in Str)
{
if (!Char.IsNumber(Char))
{
blResult = false;
break;
}
}
if (blResult)
if (int.Parse(Str) == 0)
{
blResult = false;
}
}
return blResult;
}
if (!IsNum(rqID))
{
}
我这么用!
#33
可以去 微软的网站上 找 msdn 啊。在线的。
具体网址是多少?
具体网址是多少?
#34
http://msdn2.microsoft.com/en-us/library/tst0kwb1(VS.80).aspx
#35
try
{
Convert.ToInt32(某变量) ;// 如果不能转换,就会进行捕捉错误
}
catch (Exception AAA)
{
这里提示这个变量不是全是数字
}
楼主理解了吗?
--------------------------------------------------------------------------
哥们,要是 某变量="12345678910"照样抛异常.
还是用正则比较好.
{
Convert.ToInt32(某变量) ;// 如果不能转换,就会进行捕捉错误
}
catch (Exception AAA)
{
这里提示这个变量不是全是数字
}
楼主理解了吗?
--------------------------------------------------------------------------
哥们,要是 某变量="12345678910"照样抛异常.
还是用正则比较好.
#36
^1(3\d|5[389])\d{8}$
这个正则表达式怎么解释?
1是第一位是1,3\d|5的意思是第二位是3或者5? [389]的意思是? \d{8}的意思是13x后面的长度是8位?
这个正则表达式怎么解释?
1是第一位是1,3\d|5的意思是第二位是3或者5? [389]的意思是? \d{8}的意思是13x后面的长度是8位?
#37
^1(3\d|5[389])\d{8}$
1 第一位是1
(3\d|5[389]) 第二位是3后接任意数字,或者5加3、8、9,因为现在15开头的只有153、158、189
\d{8} 后面是长度为8的数字
1 第一位是1
(3\d|5[389]) 第二位是3后接任意数字,或者5加3、8、9,因为现在15开头的只有153、158、189
\d{8} 后面是长度为8的数字
#38
为什么不能把字符一个个读入然后转换为ASCII码,卡定一个范围,肯定不会溢出.
#39
正则?
#40
呵呵,其实还有156的。 我看考虑到扩展性,还是用1(3\d|5\d)\d{8}$为好?
#41
mark
#42
强!过客!高手
呵呵
呵呵
#1
正则表达式
#2
\d+
#3
如果只是判断是否为全为数字,而不管0的位置,也就是00123这样也算合法,用下面的
private bool CheckNum(string src)
{
if (System.Text.RegularExpressions.Regex.IsMatch(src, @"^[0-9]+$"))
return true;
return false;
}
否则用int.TryParse吧
private bool CheckNum(string src)
{
if (System.Text.RegularExpressions.Regex.IsMatch(src, @"^[0-9]+$"))
return true;
return false;
}
否则用int.TryParse吧
#4
还有,就是,你可以用int.parse之类的类型转换,如果转换成功,也说明是数字
#5
正则吧
"^\d+$"
或者如果不是很长的话可以用long.TryParse
"^\d+$"
或者如果不是很长的话可以用long.TryParse
#6
public static bool IsNum(String str)
{
for(int i=0;i<str.Length;i++)
{
if(str[i]<='0' || str[i]>='9')
return false;
}
return true;
}
{
for(int i=0;i<str.Length;i++)
{
if(str[i]<='0' || str[i]>='9')
return false;
}
return true;
}
#7
正则表达式效率较低
#8
参考
http://www.itepub.net/html/kaifajingcui/C_/2006/0514/30153.html
http://www.itepub.net/html/kaifajingcui/C_/2006/0514/30153.html
#9
public static bool IsNum(String str)
{
for(int i=0;i<str.Length;i++)
{
if(str[i]<='0' || str[i]>='9')
return false;
}
return true;
}
我用的这个
{
for(int i=0;i<str.Length;i++)
{
if(str[i]<='0' || str[i]>='9')
return false;
}
return true;
}
我用的这个
#10
正则吧
"^\d+$"
这个我还是第一次看到,过客和后面几位的方法是可行的,但我想了解一下如何用正则来解决这个任务,能给具体代码吗,是不是也是System.Text.RegularExpressions这样?
"^\d+$"
这个我还是第一次看到,过客和后面几位的方法是可行的,但我想了解一下如何用正则来解决这个任务,能给具体代码吗,是不是也是System.Text.RegularExpressions这样?
#11
过客的int.TryParse,会不会溢出?
#12
int。TryParse和long.Tryparses在2003中似乎没有? 只有parse?
#13
当然要考虑范围,如果你完全无法确定它可能存在的范围,用正则的那个吧,正则的方法虽然不是效率最高的,但灵活性较好
如果不是极其频繁的检测,看不出性能差异的
如果不是极其频繁的检测,看不出性能差异的
#14
static bool IsNum(string src)
{
for (int i = 0; i < src.Length; i++)
{
if(!Char.IsDigit(src[i]))
return false;
}
return true;
}
我也写了个
{
for (int i = 0; i < src.Length; i++)
{
if(!Char.IsDigit(src[i]))
return false;
}
return true;
}
我也写了个
#15
差不多相当于及其频繁的检测,即每行的号码我都需需要验证是否合法手机号码。
过客,正则的具体代码是怎样的,我已经5年没有编程了,想当初也是csdn的高手,呵呵
过客,正则的具体代码是怎样的,我已经5年没有编程了,想当初也是csdn的高手,呵呵
#16
哦,搞错,是频繁的检测的话,那种代码效率最高
#17
原来是前辈,失敬,我上面给的就是正则方法的代码啊
private bool CheckNum(string src)
{
if (System.Text.RegularExpressions.Regex.IsMatch(src, @"^[0-9]+$"))
return true;
return false;
}
如果说验证是否为合法的手机号码,那还得用正则
private bool CheckNum(string src)
{
if (System.Text.RegularExpressions.Regex.IsMatch(src, @"^1(3\d|5[389])\d{8}$"))
return true;
return false;
}
如果是频繁检测,可以这样提高效率,当然,只是在频繁检测的情况下
System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex(@"^1(3\d|5[389])\d{8}$", RegexOptions.Compiled);
private bool CheckNum(string src)
{
if (reg.IsMatch(src))
return true;
return false;
}
我倒是用for循环测过正则的效率,但是没有用大量的数据源测过,你可以用你的数据源测一下,看能否达到你的要求
private bool CheckNum(string src)
{
if (System.Text.RegularExpressions.Regex.IsMatch(src, @"^[0-9]+$"))
return true;
return false;
}
如果说验证是否为合法的手机号码,那还得用正则
private bool CheckNum(string src)
{
if (System.Text.RegularExpressions.Regex.IsMatch(src, @"^1(3\d|5[389])\d{8}$"))
return true;
return false;
}
如果是频繁检测,可以这样提高效率,当然,只是在频繁检测的情况下
System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex(@"^1(3\d|5[389])\d{8}$", RegexOptions.Compiled);
private bool CheckNum(string src)
{
if (reg.IsMatch(src))
return true;
return false;
}
我倒是用for循环测过正则的效率,但是没有用大量的数据源测过,你可以用你的数据源测一下,看能否达到你的要求
#18
Regex.isMatch("字符串",@"^(\d)+$")
#19
来晚了,都说完了。
#20
检验手机号码的正则表达式^1(3\d|5[389])\d{8}$比较牛,赞一个
#21
RegexOptions是在哪个using里面的?我编译通不过
#22
using System.Text.RegularExpressions;
#23
找到了,是using System.Text.RegularExpressions;
不过我还有一个问题,reg并没有在CheckNum中作任何引用,这个似乎不合常理?
不过我还有一个问题,reg并没有在CheckNum中作任何引用,这个似乎不合常理?
#24
过客,你有msdn否,我买了一张盗版的dvd,说是有msdn,结果是2个6.0加一个2003,根本没有msdn,搞得我现在很被动,如果有的话,我可以开个ftp
#25
因该用正则表达式比较简单和通用吧
#26
呵呵,我这教育网,从我这传还不如你在迅雷上搜索来的快
reg在这里用到了
if (reg.IsMatch(src))
reg在这里用到了
if (reg.IsMatch(src))
#27
可以去 微软的网站上 找 msdn 啊。在线的。
#28
bool IsNum(string src)
{
for (int i = 0; i < (src.Length)/2; i++)
{
if(!Char.IsDigit(src[i]))
return false;
}
for(i = (src.Length)/2; i<src.Length;i++)
{
if(!Char.IsDigit(src[i]))
return false;
}
return true;
}
{
for (int i = 0; i < (src.Length)/2; i++)
{
if(!Char.IsDigit(src[i]))
return false;
}
for(i = (src.Length)/2; i<src.Length;i++)
{
if(!Char.IsDigit(src[i]))
return false;
}
return true;
}
#29
强!
#30
不要那么难吧,
在
try
{
这里将字符串转换为int ,如果能转换,就不会出错,如果不能转换,就会执行catch语句
}
例如
try
{
Convert.ToInt32(某变量) ;// 如果不能转换,就会进行捕捉错误
}
catch (Exception AAA)
{
这里提示这个变量不是全是数字
}
楼主理解了吗?
在
try
{
这里将字符串转换为int ,如果能转换,就不会出错,如果不能转换,就会执行catch语句
}
例如
try
{
Convert.ToInt32(某变量) ;// 如果不能转换,就会进行捕捉错误
}
catch (Exception AAA)
{
这里提示这个变量不是全是数字
}
楼主理解了吗?
#31
正则表达式
#32
public static bool IsNum(string Str)
{
bool blResult = true;
if (Str == "")
{
blResult = false;
}
else
{
foreach (char Char in Str)
{
if (!Char.IsNumber(Char))
{
blResult = false;
break;
}
}
if (blResult)
if (int.Parse(Str) == 0)
{
blResult = false;
}
}
return blResult;
}
if (!IsNum(rqID))
{
}
我这么用!
{
bool blResult = true;
if (Str == "")
{
blResult = false;
}
else
{
foreach (char Char in Str)
{
if (!Char.IsNumber(Char))
{
blResult = false;
break;
}
}
if (blResult)
if (int.Parse(Str) == 0)
{
blResult = false;
}
}
return blResult;
}
if (!IsNum(rqID))
{
}
我这么用!
#33
可以去 微软的网站上 找 msdn 啊。在线的。
具体网址是多少?
具体网址是多少?
#34
http://msdn2.microsoft.com/en-us/library/tst0kwb1(VS.80).aspx
#35
try
{
Convert.ToInt32(某变量) ;// 如果不能转换,就会进行捕捉错误
}
catch (Exception AAA)
{
这里提示这个变量不是全是数字
}
楼主理解了吗?
--------------------------------------------------------------------------
哥们,要是 某变量="12345678910"照样抛异常.
还是用正则比较好.
{
Convert.ToInt32(某变量) ;// 如果不能转换,就会进行捕捉错误
}
catch (Exception AAA)
{
这里提示这个变量不是全是数字
}
楼主理解了吗?
--------------------------------------------------------------------------
哥们,要是 某变量="12345678910"照样抛异常.
还是用正则比较好.
#36
^1(3\d|5[389])\d{8}$
这个正则表达式怎么解释?
1是第一位是1,3\d|5的意思是第二位是3或者5? [389]的意思是? \d{8}的意思是13x后面的长度是8位?
这个正则表达式怎么解释?
1是第一位是1,3\d|5的意思是第二位是3或者5? [389]的意思是? \d{8}的意思是13x后面的长度是8位?
#37
^1(3\d|5[389])\d{8}$
1 第一位是1
(3\d|5[389]) 第二位是3后接任意数字,或者5加3、8、9,因为现在15开头的只有153、158、189
\d{8} 后面是长度为8的数字
1 第一位是1
(3\d|5[389]) 第二位是3后接任意数字,或者5加3、8、9,因为现在15开头的只有153、158、189
\d{8} 后面是长度为8的数字
#38
为什么不能把字符一个个读入然后转换为ASCII码,卡定一个范围,肯定不会溢出.
#39
正则?
#40
呵呵,其实还有156的。 我看考虑到扩展性,还是用1(3\d|5\d)\d{8}$为好?
#41
mark
#42
强!过客!高手
呵呵
呵呵