常用Regex正则
2019-11-04 18:12 .net小跟班(杜) 阅读(172) 评论(0) 编辑 收藏 举报下面列举的是常用的正则表达式
/// <summary> /// 检测是否符合email格式 /// </summary> /// <param name="strEmail">要判断的email字符串</param> /// <returns>判断结果</returns> public static bool IsValidEmail(string strEmail) { return Regex.IsMatch(strEmail, @"^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$"); } public static bool IsValidDoEmail(string strEmail) { return Regex.IsMatch(strEmail, @"^@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$"); } /// <summary> /// 检测是否是正确的Url /// </summary> /// <param name="strUrl">要验证的Url</param> /// <returns>判断结果</returns> public static bool IsURL(string strUrl) { return Regex.IsMatch(strUrl, @"^(http|https)\://([a-zA-Z0-9\.\-]+(\:[a-zA-Z0-9\.&%\$\-]+)*@)*((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])|localhost|([a-zA-Z0-9\-]+\.)*[a-zA-Z0-9\-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{1,10}))(\:[0-9]+)*(/($|[a-zA-Z0-9\.\,\?\'\\\+&%\$#\=~_\-]+))*$"); } /// <summary> /// 检测是否是字母或者数字的字符串 /// </summary> /// <param name="strIn">要验证的字符串</param> /// <returns></returns> public static bool IsValidString(string strIn) { return Regex.IsMatch(strIn, @"^[A-Za-z0-9]+$"); } /// <summary> /// 判断电话/传真 /// </summary> /// <param name="Tel"></param> /// <returns></returns> public static bool IsValidTel(string Tel) { return Regex.IsMatch(Tel, @"^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$"); } /// <summary> /// 邮政编码 /// </summary> /// <param name="Zip"></param> /// <returns></returns> public static bool IsValidZip(string Zip) { return Regex.IsMatch(Zip, @"^[a-z0-9 ]{3,12}$"); } /// <summary> /// 判断只能输字母 /// </summary> /// <param name="EnName"></param> /// <returns></returns> public static bool IsValidEnName(string EnName) { return Regex.IsMatch(EnName, @"[a-zA-Z]"); } /// <summary> /// 判断是否为base64字符串 /// </summary> /// <param name="str"></param> /// <returns></returns> public static bool IsBase64String(string str) { //A-Z, a-z, 0-9, +, /, = return Regex.IsMatch(str, @"[A-Za-z0-9\+\/\=]"); } /// <summary> /// 检测是否有Sql危险字符 /// </summary> /// <param name="str">要判断字符串</param> /// <returns>判断结果</returns> public static bool IsSafeSqlString(string str) { return !Regex.IsMatch(str, @"[-|;|,|\/|\(|\)|\[|\]|\}|\{|%|@|\*|!|\']"); } /// <summary> /// 检测是否有危险的可能用于链接的字符串 /// </summary> /// <param name="str">要判断字符串</param> /// <returns>判断结果</returns> public static bool IsSafeUserInfoString(string str) { return !Regex.IsMatch(str, @"^\s*$|^c:\\con\\con$|[%,\*" + "\"" + @"\s\t\<\>\&]|游客|^Guest"); } /// <summary> /// 判断文件流是否为UTF8字符集 /// </summary> /// <param name="sbInputStream">文件流</param> /// <returns>判断结果</returns> private static bool IsUTF8(FileStream sbInputStream) { int i; byte cOctets; // octets to go in this UTF-8 encoded character byte chr; bool bAllAscii = true; long iLen = sbInputStream.Length; cOctets = 0; for (i = 0; i < iLen; i++) { chr = (byte)sbInputStream.ReadByte(); if ((chr & 0x80) != 0) bAllAscii = false; if (cOctets == 0) { if (chr >= 0x80) { do { chr <<= 1; cOctets++; } while ((chr & 0x80) != 0); cOctets--; if (cOctets == 0) return false; } } else { if ((chr & 0xC0) != 0x80) { return false; } cOctets--; } } if (cOctets > 0) { return false; } if (bAllAscii) { return false; } return true; } /// <summary> /// 是否为ip /// </summary> /// <param name="ip"></param> /// <returns></returns> public static bool IsIP(string ip) { return Regex.IsMatch(ip, @"^((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)$"); } public static bool IsIPSect(string ip) { return Regex.IsMatch(ip, @"^((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){2}((2[0-4]\d|25[0-5]|[01]?\d\d?|\*)\.)(2[0-4]\d|25[0-5]|[01]?\d\d?|\*)$"); } /// <summary> /// 判断指定字符串在指定字符串数组中的位置 /// </summary> /// <param name="strSearch">字符串</param> /// <param name="stringArray">字符串数组</param> /// <param name="caseInsensetive">是否不区分大小写, true为不区分, false为区分</param> /// <returns>字符串在指定字符串数组中的位置, 如不存在则返回-1</returns> public static int GetInArrayID(string strSearch, string[] stringArray, bool caseInsensetive) { for (int i = 0; i < stringArray.Length; i++) { if (caseInsensetive) { if (strSearch.ToLower() == stringArray[i].ToLower()) { return i; } } else { if (strSearch == stringArray[i]) { return i; } } } return -1; } /// <summary> /// 判断指定字符串是否属于指定字符串数组中的一个元素 /// </summary> /// <param name="strSearch">字符串</param> /// <param name="stringArray">字符串数组</param> /// <param name="caseInsensetive">是否不区分大小写, true为不区分, false为区分</param> /// <returns>判断结果</returns> public static bool InArray(string strSearch, string[] stringArray, bool caseInsensetive) { return GetInArrayID(strSearch, stringArray, caseInsensetive) >= 0; } /// <summary> /// 判断指定字符串是否属于指定字符串数组中的一个元素 /// </summary> /// <param name="str">字符串</param> /// <param name="stringarray">字符串数组</param> /// <returns>判断结果</returns> public static bool InArray(string str, string[] stringarray) { return InArray(str, stringarray, false); } /// <summary> /// json 数据为空 /// </summary> public static bool JsonIsNull(string jsonstr) { jsonstr=jsonstr.Trim(); if (jsonstr == "" || jsonstr == "[]" || jsonstr == "{}" || jsonstr == "[" || jsonstr == "]" || jsonstr == "{" || jsonstr == "}") { return true; } else { return false; } } /// <summary> /// 判断数据是否为正数 /// </summary> /// <param name="number"></param> /// <returns></returns> public static bool IsPositiveNumber(int number) { return Math.Sign(number)==1?true:false; }