字符串扩展类 系统管理员 2021-03-25 14:48 610阅读 0赞 using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Security.Cryptography; using System.Text; using System.Text.RegularExpressions; using System.Xml; using System.Xml.Serialization; namespace Lbb.Cx.Ciac.Utility.Code { /// <summary> /// 字符串扩展类 /// </summary> public static class StringExtension { /// <summary> /// 用于判断是否为空字符 /// </summary> /// <param name="s"></param> /// <returns></returns> public static bool IsBlank(this string s) { return s == null || (s.Trim().Length == 0); } /// <summary> /// 用于判断是否不为空字符 /// </summary> /// <param name="s"></param> /// <returns></returns> public static bool IsNotBlank(this string s) { return !s.IsBlank(); } /// <summary> /// 判断是否为有效的Email地址 /// </summary> /// <param name="s"></param> /// <returns></returns> public static bool IsValidEmail(this string s) { if (!s.IsBlank()) { //return Regex.IsMatch(s, // @"^(?("")("".+?""@)|(([0-9a-zA-Z]((\.(?!\.))|[-!#\$%&'\*\+/=\?\^`\{\}\|~\w])*)(?<=[0-9a-zA-Z])@))" + // @"(?(\[)(\[(\d{1,3}\.){3}\d{1,3}\])|(([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,6}))$"); const string pattern = @"^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$"; return Regex.IsMatch(s, pattern); } return false; } /// <summary> /// 验证是否是合法的电话号码 /// </summary> /// <param name="s"></param> /// <returns></returns> public static bool IsValidPhone(this string s) { if (!s.IsBlank()) { return Regex.IsMatch(s, @"^\+?((\d{2,4}(-)?)|(\(\d{2,4}\)))*(\d{0,16})*$"); } return true; } /// <summary> /// 验证是否是合法的手机号码 /// </summary> /// <param name="s"></param> /// <returns></returns> public static bool IsValidMobile(this string s) { if (!s.IsBlank()) { return Regex.IsMatch(s, @"^\+?\d{0,4}?[1][3-8]\d{9}$"); } return false; } /// <summary> /// 验证是否是合法的邮编 /// </summary> /// <param name="s"></param> /// <returns></returns> public static bool IsValidZipCode(this string s) { if (!s.IsBlank()) { return Regex.IsMatch(s, @"[1-9]\d{5}(?!\d)"); } return true; } /// <summary> /// 验证是否是合法的传真 /// </summary> /// <param name="s"></param> /// <returns></returns> public static bool IsValidFax(this string s) { if (!s.IsBlank()) { return Regex.IsMatch(s, @"(^[0-9]{3,4}\-[0-9]{7,8}$)|(^[0-9]{7,8}$)|(^\([0-9]{3,4}\)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)"); } return true; } /// <summary> /// 检查字符串是否为有效的INT32数字 /// </summary> /// <param name="val"></param> /// <returns></returns> public static bool IsInt32(this string val) { if (IsBlank(val)) return false; Int32 k; return Int32.TryParse(val, out k); } /// <summary> /// 检查字符串是否为有效的INT64数字 /// </summary> /// <param name="val"></param> /// <returns></returns> public static bool IsInt64(this string val) { if (IsBlank(val)) return false; Int64 k; return Int64.TryParse(val, out k); } /// <summary> /// 检查字符串是否为有效的Decimal /// </summary> /// <param name="val"></param> /// <returns></returns> public static bool IsDecimal(this string val) { if (IsBlank(val)) return false; decimal d; return Decimal.TryParse(val, out d); } /// <summary> /// 将字符串转换成MD5加密字符串 /// </summary> /// <param name="orgStr"></param> /// <returns></returns> public static string ToMD5(this string orgStr) { MD5 md5Hasher = MD5.Create(); // Convert the input string to a byte array and compute the hash. byte[] data = md5Hasher.ComputeHash(Encoding.Default.GetBytes(orgStr)); // Create a new Stringbuilder to collect the bytes // and create a string. StringBuilder sBuilder = new StringBuilder(); // Loop through each byte of the hashed data // and format each one as a hexadecimal string. for (int i = 0; i < data.Length; i++) { sBuilder.Append(data[i].ToString("x2")); } // Return the hexadecimal string. return sBuilder.ToString(); } /// <summary> /// 将对象序列化成XML /// </summary> /// <typeparam name="T"></typeparam> /// <param name="obj"></param> /// <returns></returns> public static string ToXML<T>(this T obj) where T : class { return ToXML(obj, Encoding.Default.BodyName); } public static string ToXML<T>(this T obj, string encodeName) where T : class { if (obj == null) throw new ArgumentNullException("obj", "obj is null."); if (obj is string) throw new ApplicationException("obj can't be string object."); Encoding en = Encoding.GetEncoding(encodeName); XmlSerializer serial = new XmlSerializer(typeof(T)); XmlSerializerNamespaces ns = new XmlSerializerNamespaces(); ns.Add("", ""); MemoryStream ms = new MemoryStream(); XmlTextWriter xt = new XmlTextWriter(ms, en); serial.Serialize(xt, obj, ns); xt.Close(); ms.Close(); return en.GetString(ms.ToArray()); } /// <summary> /// 将XML字符串反序列化成对象实体 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="s"></param> /// <returns></returns> public static T Deserial<T>(this string s) where T : class { return Deserial<T>(s, Encoding.Default.BodyName); } public static T Deserial<T>(this string s, string encodeName) where T : class { if (s.IsBlank()) { throw new ApplicationException("xml string is null or empty."); } XmlSerializer serial = new XmlSerializer(typeof(T)); XmlSerializerNamespaces ns = new XmlSerializerNamespaces(); ns.Add("", ""); return (T)serial.Deserialize(new StringReader(s)); } /// <summary> /// 获取扩展名 /// </summary> /// <param name="s"></param> /// <returns></returns> public static string GetExt(this string s) { string ret = string.Empty; if (s.Contains('.')) { string[] temp = s.Split('.'); ret = temp[temp.Length - 1]; } return ret; } /// <summary> /// 验证QQ格式 /// </summary> /// <param name="s"></param> /// <returns></returns> public static bool IsValidQQ(this string s) { if (!s.IsBlank()) { return Regex.IsMatch(s, @"^[1-9]\d{4,15}$"); } return false; } /// <summary> /// 字符串转成Int /// </summary> /// <param name="s"></param> /// <returns></returns> public static int ToInt(this string s) { int res; int.TryParse(s, out res); return res; } } }
相关 字符串扩展及数值扩展 字符串扩展及数值扩展 故心故心故心故心小故冲啊 -------------------- 文章目录 字符串扩展及数值扩展 一、字符串扩展 怼烎@/ 2022年11月21日 11:41/ 0 赞/ 233 阅读
相关 字符串扩展→模板字符串 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> 心已赠人/ 2022年10月01日 12:48/ 0 赞/ 284 阅读
相关 字符串扩展 字符串扩展 Time Limit: 1000MS Memory Limit: 65536KB Problem Description Tom有些时候为了记录的方 痛定思痛。/ 2022年09月29日 06:32/ 0 赞/ 219 阅读
相关 字符串扩展 think: 1、一定要注意细节,一失足成千古恨 2、学会灵活变通 [sdut原题链接][sdut] 字符串扩展 Time Limit: 1000MS Memo 怼烎@/ 2022年07月11日 18:57/ 0 赞/ 236 阅读
相关 字符串扩展 Problem Description Tom有些时候为了记录的方便,常常将一些连续的字符用扩展符'-'简单表示。比如abcdefg可以简写为a-g,即用起始的字符和终止 比眉伴天荒/ 2022年07月11日 13:03/ 0 赞/ 237 阅读
相关 java练习——字符串扩展 字符串扩展 Time Limit: 1000 ms Memory Limit: 65536 KiB [Submit][] [Statistic][] Problem 末蓝、/ 2022年05月26日 04:24/ 0 赞/ 124 阅读
相关 字符串扩展 Problem Description Tom有些时候为了记录的方便,常常将一些连续的字符用扩展符’-‘简单表示。比如abcdefg可以简写为a-g,即用起始的字符和终止字符 本是古典 何须时尚/ 2022年04月14日 05:48/ 0 赞/ 297 阅读
相关 字符串扩展→模板字符串(实例) <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> 水深无声/ 2022年01月17日 04:47/ 0 赞/ 378 阅读
相关 字符串的扩展 字符串的扩展 字符的unicode表示法字符串的遍历器接口直接输入U 2028和U 2029json.stringify()的改造模板字符串 模板编译标签模板模板字符串的限 素颜马尾好姑娘i/ 2021年07月24日 23:27/ 0 赞/ 563 阅读
相关 字符串扩展类 using System; using System.Collections.Generic; using System.IO; using System.Linq; u... 系统管理员/ 2021年03月25日 14:48/ 0 赞/ 611 阅读
还没有评论,来说两句吧...