标签:
注:以下方法皆为收集而来
/// <summary> /// 自定义扩展类 /// </summary> public static class IExtension { /// <summary> /// 是否为空 /// </summary> /// <param name="s"></param> /// <returns></returns> public static bool IsNullOrEmpty(this string s) { return string.IsNullOrEmpty(s); } /// <summary> /// 验证字符串是否由正负号(+-)、数字、小数点构成,并且最多只有一个小数点 /// </summary> /// <param name="str"></param> /// <returns></returns> public static bool IsNumeric(this string str) { Regex regex = new Regex(@"^[+-]?\d+[.]?\d*$"); return regex.IsMatch(str); } /// <summary> /// 验证字符串是否仅由[0-9]构成 /// </summary> /// <param name="str"></param> /// <returns></returns> public static bool IsNumericOnly(this string str) { Regex regex = new Regex("[0-9]"); return regex.IsMatch(str); } /// <summary> /// 验证字符串是否由字母和数字构成 /// </summary> /// <param name="str"></param> /// <returns></returns> public static bool IsNumericOrLetters(this string str) { Regex regex = new Regex("[a-zA-Z0-9]"); return regex.IsMatch(str); } /// <summary> /// 验证字符串是否符合正则 /// </summary> /// <param name="s">字符串</param> /// <param name="pattern">正则</param> /// <returns>bool</returns> public static bool IsMatch(this string s, string pattern) { if (s == null) return false; else return Regex.IsMatch(s, pattern); } /// <summary> /// 验证字符串是否符合正则 /// </summary> /// <param name="s">字符串</param> /// <param name="pattern">正则</param> /// <returns>string</returns> public static string Match(this string s, string pattern) { if (s == null) return ""; return Regex.Match(s, pattern).Value; //--------------example-------------- //bool b = "12345".IsMatch(@"\d+"); //string s = "ldp615".Match("[a-zA-Z]+"); } /// <summary> /// 获取字符串长度。与string.Length不同的是,该方法将中文作 2 个字符计算。 /// </summary> /// <param name="str">目标字符串</param> /// <returns></returns> public static int GetLength(this string str) { if (str == null || str.Length == 0) { return 0; } int l = str.Length; int realLen = l; #region 计算长度 int clen = 0;//当前长度 while (clen < l) { //每遇到一个中文,则将实际长度加一。 if ((int)str[clen] > 128) { realLen++; } clen++; } #endregion return realLen; } /// <summary> /// 将形如 10.1MB 格式对用户友好的文件大小字符串还原成真实的文件大小,单位为字节。 /// </summary> /// <param name="formatedSize">形如 10.1MB 格式的文件大小字符串</param> /// <remarks> /// 参见:<see cref="uoLib.Common.Functions.FormatFileSize(long)"/> /// </remarks> /// <returns></returns> public static long GetFileSizeFromString(this string formatedSize) { if (IsNullOrEmptyStr(formatedSize)) throw new ArgumentNullException("formatedSize"); long size; if (long.TryParse(formatedSize, out size)) return size; //去掉数字分隔符 formatedSize = formatedSize.Replace(",", ""); Regex re = new Regex(@"^([\d\.]+)((?:TB|GB|MB|KB|Bytes))$"); if (re.IsMatch(formatedSize)) { MatchCollection mc = re.Matches(formatedSize); Match m = mc[0]; double s = double.Parse(m.Groups[1].Value); switch (m.Groups[2].Value) { case "TB": s *= 1099511627776; break; case "GB": s *= 1073741824; break; case "MB": s *= 1048576; break; case "KB": s *= 1024; break; } size = (long)s; return size; } throw new ArgumentException("formatedSize"); } /// <summary> /// 根据文件夹命名规则验证字符串是否符合文件夹格式 /// </summary> //public static bool IsFolderName(this string folderName) //{ // if (IsNullOrEmptyStr(folderName)) { return false; } // else // { // // 不能以 “.” 开头 // folderName = folderName.Trim().ToLower(); // // “nul”、“aux”、“con”、“com1”、“lpt1”不能为文件夹/文件的名称 // // 作为文件夹,只需满足名称不为这几个就行。 // switch (folderName) // { // case "nul": // case "aux": // case "con": // case "com1": // case "lpt1": // return false; // default: // break; // } // Regex re = new Regex(RegexPatterns.FolderName, RegexOptions.IgnoreCase); // return re.IsMatch(folderName); // } //} /// <summary> /// 验证是否是整形 /// </summary> /// <param name="s"></param> /// <returns>bool</returns> public static bool IsInt(this string s) { int i; return int.TryParse(s, out i); } /// <summary> /// 验证是否是整形 /// </summary> /// <param name="s"></param> /// <returns>int</returns> public static int ToInt(this string s) { return int.Parse(s); } /// <summary> /// 转换时间及小数 /// </summary> /// <param name="obj"></param> /// <returns></returns> public static string ToExtensionString(this Object obj) { string s = string.Empty; if (obj == null) return s; if (obj is DateTime) s = Convert.ToDateTime(obj).ToString("yyyy-MM-dd"); else if (obj is Decimal) s = Convert.ToDecimal(obj).ToString("###,##0.00"); else s = obj.ToString(); return s; } /// <summary> /// 第一位小写 /// </summary> /// <param name="s"></param> /// <returns></returns> public static string ToCamel(this string s) { if (s.IsNullOrEmpty()) return s; return s[0].ToString().ToLower() + s.Substring(1); } /// <summary> /// 第一位大写 /// </summary> /// <param name="s"></param> /// <returns></returns> public static string ToPascal(this string s) { if (s.IsNullOrEmpty()) return s; return s[0].ToString().ToUpper() + s.Substring(1); } /// <summary> /// 转全角(SBC case) /// </summary> /// <param name="input">任意字符串</param> /// <returns>全角字符串</returns> public static string ToSBC(this string input) { char[] c = input.ToCharArray(); for (int i = 0; i < c.Length; i++) { if (c[i] == 32) { c[i] = (char)12288; continue; } if (c[i] < 127) c[i] = (char)(c[i] + 65248); } return new string(c); } /// <summary> /// 转半角(DBC case) /// </summary> /// <param name="input">任意字符串</param> /// <returns>半角字符串</returns> public static string ToDBC(this string input) { char[] c = input.ToCharArray(); for (int i = 0; i < c.Length; i++) { if (c[i] == 12288) { c[i] = (char)32; continue; } if (c[i] > 65280 && c[i] < 65375) c[i] = (char)(c[i] - 65248); } return new string(c); } /// <summary> /// 把提取的字母变成大写 /// </summary> /// <param name="strText">需要转换的字符串</param> /// <returns>转换结果</returns> public static string GetLowerChineseSpell(this string strText) { return ChsToPinYinPlugs.GetChineseSpell(strText).ToLower(); } /// <summary> /// 把提取的字母变成大写 /// </summary> /// <param name="myChar">需要转换的字符串</param> /// <returns>转换结果</returns> public static string GetUpperChineseSpell(this string strText) { return ChsToPinYinPlugs.GetChineseSpell(strText).ToUpper(); } }
标签:
原文地址:http://www.cnblogs.com/sy-ds/p/4462136.html