这里发布一个通用的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); } }