C#中判断是否为数字(及一些好用的正则表达式) [转]

来源:互联网 发布:南方策略优化基金净值 编辑:程序博客网 时间:2024/06/05 22:44

2009-12-07 23:51

在VB中原有一个 isnumeric()函数来判断
到了C#.net中却没有了。

网上很多用的是try{}来做,这一方法不是不行,但是,由于这个是用catch一个错误来实现,会导致数据比较慢(个人尝试过,觉得慢多了),所以,以下方法使用的是一个正则表达式得来的

    //判断是否为正整数
    public static bool IsInt(string inString)
    {
        Regex regex = new Regex("^[0-9]*[1-9][0-9]*$");
        return regex.IsMatch(inString.Trim());
    }

用这个方法除了判断是否为数字还可以判断其他的,比如判断E-mail格式是否正确等等,只要正则表达式支持的,这里都支持,只需要把正则表达式替换了代码中蓝色的部分即可,关于正则不会的,可以在我BLOG里找,有一篇正则的介绍,相当全面!

几个正则表达式的例子:

"^//d+$"  //非负整数(正整数 + 0)
"^[0-9]*[1-9][0-9]*$"  //正整数   
"^((-//d+)|(0+))$"  //非正整数(负整数 + 0)   
"^-[0-9]*[1-9][0-9]*$"  //负整数   
"^-?//d+$"    //整数   
"^//d+(//.//d+)?$"  //非负浮点数(正浮点数 + 0)   
"^(([0-9]+//.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*//.[0-9]+)|([0-9]*[1-9][0-9]*))$" 
//正浮点数   
"^((-//d+(//.//d+)?)|(0+(//.0+)?))$"  //非正浮点数(负浮点数 + 0)   
"^(-(([0-9]+//.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*//.[0-9]+)|([0-9]*[1-9][0-9]*)))$" 
//负浮点数   
"^(-?//d+)(//.//d+)?$"  //浮点数   
"^[A-Za-z]+$"  //由26个英文字母组成的字符串   
"^[A-Z]+$"  //由26个英文字母的大写组成的字符串   
"^[a-z]+$"  //由26个英文字母的小写组成的字符串   
"^[A-Za-z0-9]+$"  //由数字和26个英文字母组成的字符串   
"^//w+$"  //由数字、26个英文字母或者下划线组成的字符串   
"^[//w-]+(//.[//w-]+)*@[//w-]+(//.[//w-]+)+$"    //email地址   
"^[a-zA-z]+://(//w+(-//w+)*)(//.(//w+(-//w+)*))*(//?//S*)?$"  //url

转自:http://cancelme.blog.sohu.com/101878040.html

原创粉丝点击