文章类型: JAVA
关键词: C#语言,C#编程,正则表达式,输入验证,用户输入,验证类,自定义
内容摘要: 给大家提供一个比较通用的正则表达式类,使用C#语言写的,供C#编程和使用正则表达式作验证的使用

用户输入时提供一个C#语言编写的正则表达式验证类

2015/7/14 16:17:14    来源:apple    阅读:

这里发布一个通用的C#语言的正则表达式类:

public class InputCheckTool 
{ 
    public enum Type 
    { 
        整数 = 0, 
        正整数, 
        负整数, 
        数字, 
        电话, 
        正数, 
        负数, 
        浮点数, 
        正浮点数, 
        负浮点数, 
        浮点数2, 
        非负浮点数, 
        非正浮点数, 
        邮件, 
        颜色, 
        url, 
        中文, 
        ACSII字符, 
        邮编, 
        手机, 
        IP地址, 
        非空, 
        图片, 
        压缩文件, 
        日期, 
        QQ号码, 
        用户名 = 27, 
        字母=28, 
        大写字母=29, 
        小写字母=30, 
        身份证=31, 
        文章ID信息=32 
    } 
  
    static string pattern; 
  
    public static bool Check(string str, Type t) 
    { 
        switch (Convert.ToInt32(t)) 
        { 
            case 0://整数 
                pattern = @"^-?[1-9]\d*$"; 
                break; 
            case 1://正整数 
                pattern = "^[0-9]*[1-9][0-9]*$"; 
                break; 
            case 2://负整数 
                pattern = "^-[0-9]*[1-9][0-9]*$"; 
                break; 
            case 3://数字 
                pattern = "^([+-]?)\\d*\\.?\\d+$"; 
                break; 
            case 4://电话 
                //在做项目时常常用到判断电话号码的正则表达式,写了一个,可验证如下27种格式: 
                //110 
                //8888888 
                //88888888 
                //8888888-123 
                //88888888-23435 
                //0871-8888888-123 
                //023-88888888-23435 
                //86-0871-8888888-123 
                //8888888_123 
                //88888888_23435 
                //0871_8888888_123 
                //023_88888888_23435 
                //86_0871_8888888_123 
                //8888888-123 
                //88888888-23435 
                //0871-8888888-123 
                //023-88888888-23435 
                //86-0871-8888888-123 
                //8888888—123 
                //88888888—23435 
                //0871—8888888—123 
                //023—88888888—23435 
                //86—0871—8888888—123 
                //13588888888 
                //15988888888 
                //013588888888 
                //015988888888 
                //(0315)7663551 
                pattern = @"((^(\d{2,4}[-_-—]?)?\d{3,8}([-_-—]?\d{3,8})?([-_-—]?\d{1,7})?$)|(^0?1[35]\d{9}$)z)|(^(\([0-9]+\))?[0-9]{7,8}$)"; 
                break; 
            case 5://正数(正整数+ 0) 
                pattern = @"^\d+$"; 
                break; 
            case 6://负数(负整数+ 0) 
                pattern = @"^((-\d+)|(0+))$"; 
                break; 
            case 7://浮点数 
                pattern = @"^(-?\d+)(\.\d+)?$"; 
                break; 
            case 8://正浮点数 
                pattern = @"^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$"; 
                break; 
            case 9://负浮点数 
                pattern = @"^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$"; 
                break; 
            case 10://浮点数 
                pattern = "^-?([1-9]\\d*.\\d*|0.\\d*[1-9]\\d*|0?.0+|0)$"; 
                break; 
            case 11://非负浮点数(正浮点数+ 0) 
                pattern = @"^\d+(\.\d+)?$"; 
                break; 
            case 12://非正浮点数(负浮点数+ 0) 
                pattern = @"^((-\d+(\.\d+)?)|(0+(\.0+)?))$"; 
                break; 
            case 13://邮件                   //正确 
                pattern = @"^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$"; 
                break; 
            case 14://颜色 
                pattern = "^[a-fA-F0-9]{6}$"; 
                break; 
            case 15://url(http格式的) 
                pattern = @"http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?"; 
                break; 
            case 16://仅中文 
                pattern = @"[\u4e00-\u9fa5]"; 
                break; 
            case 17://仅ACSII字符 
                pattern = "^[\\x00-\\xFF]+$"; 
                break; 
            case 18://邮编 
                pattern = "^\\d{6}$"; 
                break; 
            case 19://手机(13号段和号段) 
                pattern = "^13[0-9]{9}$"; 
                break; 
            case 20://ip地址 
                pattern = @"^(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])$"; 
                break; 
            case 21://非空 
                pattern = "^\\S+$"; 
                break; 
            case 22://图片 
                pattern = @"(.*)\.(jpg|gif|png|bmp)$"; 
                break; 
            case 23://压缩文件 
                pattern = "(.*)\\.(rar|zip|7zip|tgz)$"; 
                break; 
            case 24://日期 
                //这个日期正则表达式支持如下格式,其中的"年/月/日"的分隔符可以为"-"或者"/"或者"_"或者"."的四种形式之一 
                //YYYY 
                //YYYY-MM 
                //YYYY-MM-DD    的形式 
                pattern = @"((^((1[8-9]\d{2})|([2-9]\d{3}))$)|(^((1[8-9]\d{2})|([2-9]\d{3}))([-\/\._])(0?[1-9]|10|11|12)$)|(^((1[8-9]\d{2})|([2-9]\d{3}))([-\/\._])(10|12|0?[13578])([-\/\._])(3[01]|[12][0-9]|0?[1-9])$)|(^((1[8-9]\d{2})|([2-9]\d{3}))([-\/\._])(11|0?[469])([-\/\._])(30|[12][0-9]|0?[1-9])$)|(^((1[8-9]\d{2})|([2-9]\d{3}))([-\/\._])(0?2)([-\/\._])(2[0-8]|1[0-9]|0?[1-9])$)|(^([2468][048]00)([-\/\._])(0?2)([-\/\._])(29)$)|(^([3579][26]00)([-\/\._])(0?2)([-\/\._])(29)$)|(^([1][89][0][48])([-\/\._])(0?2)([-\/\._])(29)$)|(^([2-9][0-9][0][48])([-\/\._])(0?2)([-\/\._])(29)$)|(^([1][89][2468][048])([-\/\._])(0?2)([-\/\._])(29)$)|(^([2-9][0-9][2468][048])([-\/\._])(0?2)([-\/\._])(29)$)|(^([1][89][13579][26])([-\/\._])(0?2)([-\/\._])(29)$)|(^([2-9][0-9][13579][26])([-\/\._])(0?2)([-\/\._])(29)$))"; 
                break; 
            case 25://QQ号码 
                pattern = "[1-9][0-9]{4,}"; 
                break; 
  
            case 27://用来用户注册。匹配由数字、个英文字母或者下划线组成的字符串 
                pattern = "^(?!\\d)[a-zA-Z0-9_\\u4e00-\\u9fa5]+$"; 
                break; 
            case 28://字母 
                pattern = "^[A-Za-z]+$"; 
                break; 
            case 29://大写字母 
                pattern = "^[A-Z]+$"; 
                break; 
            case 30://小写字母 
                pattern = "^[a-z]+$"; 
                break; 
            case 31://身份证 
                pattern = @"^[1-9]([0-9]{16}|[0-9]{13})[xX0-9]$"; 
                break; 
            case 32://文章ID输入 
                pattern = @"(^[1-9][0-9]*[+-]?$)|(^[1-9]\d*[-\/\._][1-9]\d*$)"; 
                break; 
            default: 
                pattern = string.Empty; 
                break; 
        } 
        return Regex.IsMatch(str, pattern); 
    } 
}

 

 

↑ 上一篇文章:探讨SQL查询优化 关键词:SQL,Server,查询优化,SARG,SQL编程优化.. 发布日期:2015/7/14 16:06:51
↓ 下一篇文章:使用SQL的存储过程来处理字符串分割的模糊查询问题 关键词:存储过程,procedure,字符串分割,模糊查询,SQ.. 发布日期:2015/7/14 16:19:15
相关文章:
ASP.NET中的分页剖析(四) 关键词:C#,ASPX,ASP,.NET中,分页,自定义 发布日期:2015-07-29 12:23
ASP.NET中的分页剖析(五) 关键词:C#,ASPX,ASP,.NET中,分页,自定义 发布日期:2015-07-29 12:24
ASP.NET中的分页剖析(三) 关键词:C#,ASPX,ASP,.NET中,分页,自定义 发布日期:2015-07-29 12:22
相关目录:.NETJAVASCRIPTJAVA
我要评论
正在加载评论信息......