using System; using System.Collections.Generic; using System.Text; using System.Text.RegularExpressions; using System.Collections; namespace DealMvc.Common.Net { /// /// 处理字符串类 /// public static class DealString { /// /// 取得此字符串的后缀名(针对字符串为文件名的情况,不包括.) /// /// 字符串对象 /// 截取后的子字符串 public static string getExtension(string _String) { int S = _String.LastIndexOf("."); string subString = _String.Substring(S + 1); return subString; } /// /// 从字符串开始处截取指定长度的子字符串(一个汉字算两个字符串) /// 如果截取指定的长度大于字符串本身,则返回字符串本身 /// 否则返回截取的字符串加... /// /// 字符串对象 /// 截取的长度(为偶数) /// 截取后的子字符串 public static string getSubString(string _String, int length) { return getSubString(_String, length, "..."); } /// /// 从字符串开始处截取指定长度的子字符串(一个汉字算两个字符串) /// 如果截取指定的长度大于字符串本身,则返回字符串本身 /// 否则返回截取的字符串加... /// /// 字符串对象 /// 截取的长度(为偶数) /// 省略符号 /// 截取后的子字符串 public static string getSubString(string _String, int length, string Sig) { Regex reg = new Regex(@"[^\x00-\xff]"); string newString = ZhuanHuanStringASIIC(_String); if (newString.Length > length) { StringBuilder output = new StringBuilder(); int u = 0; for (int i = 0; i < _String.Length; i++) { string _subString = _String.Substring(i, 1); if (reg.IsMatch(_subString)) { u += 2; } else { u++; } output.Append(_subString); if (u >= length) { break; } } return output.ToString() + Sig; } else { return _String; } } /// /// 对字符串进行md5加密 /// /// 字符串对象 /// 加密有的字符串 public static string MD5(string _String) { return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(_String, "md5"); } /// /// 将双字节字符转换成ww /// /// 待转换的字符串 /// 返回转换后的字符串 public static string ZhuanHuanStringASIIC(string _string) { Regex reg = new Regex(@"[^\x00-\xff]"); return reg.Replace(_string, "ww"); } /// /// 把带有注入性的字符串转换成普通字符 /// /// 待检查的字符串 /// public static string ChangeSQL(string _string) { return ChangeSQL(_string, true); } /// /// 把带有注入性的字符串转换成普通字符(第三方编辑区一般不能转换为false) /// /// 待检查的字符串 /// 是否要替换<和>(第三方编辑区一般不能转换为false) /// 返回转换后的字符串 public static string ChangeSQL(string _string, bool _tihuanB) { //防注入 string[] _yangben = Z_String.SQL_String.Split(new char[] { '|' }); for (int i = 0; i < _yangben.Length; i++) { Regex _Regex = new Regex(_yangben[i].ToString(), RegexOptions.IgnoreCase); _string = _Regex.Replace(_string, Z_String.MSQL + "$0" + Z_String.MSQL); } string[] _yangben1 = Z_String.SQL_String2.Split(new char[] { '|' }); string[] _yangben12 = Z_String.SQL_StringF2.Split(new char[] { '|' }); for (int i = 0; i < _yangben1.Length; i++) { _string = _string.Replace(_yangben12[i].ToString(), _yangben1[i].ToString()); } if (_tihuanB) { //替换 string[] _tihuan = Z_String.Tihuan_String.Split(new char[] { '|' }); string[] _tihuan2 = Z_String.Tihuan_StringF.Split(new char[] { '|' }); for (int u = 0; u < _tihuan.Length; u++) { _string = _string.Replace(_tihuan2[u].ToString(), _tihuan[u].ToString()); } } return _string; } /// /// 把普通字符转换成带有注入性的字符串 /// /// 待检查的字符串 /// 返回转换后的字符串 public static string ChangeSQLF(string _string) { string[] _yangben = Z_String.SQL_String2.Split(new char[] { '|' }); string[] _yangben2 = Z_String.SQL_StringF2.Split(new char[] { '|' }); for (int i = 0; i < _yangben2.Length; i++) { _string = _string.Replace(_yangben2[i].ToString(), _yangben[i].ToString()); } _string = _string.Replace(Z_String.MSQL, ""); return _string; } /// /// 分割字符串,保存为数组 /// /// 字符串 /// 分隔字符或字符串 /// 结果数组 public static string[] SplitString(string strContent, string strSplit) { if (strContent.IndexOf(strSplit) < 0) { string[] tmp = { strContent }; return tmp; } return Regex.Split(strContent, @strSplit.Replace(".", @"\."), RegexOptions.IgnoreCase); } #region 字符串转 与 16进制 互转 /// /// 把字符串转换成16进制 /// /// /// public static string StrToHex(string mStr) { return BitConverter.ToString(System.Text.ASCIIEncoding.Default.GetBytes(mStr)).Replace("-", " "); } /// /// 把16进制转换成字符串 /// /// /// public static string HexToStr(string mHex) { mHex = mHex.Replace(" ", ""); if (mHex.Length <= 0) { return ""; } byte[] vBytes = new byte[mHex.Length / 2]; for (int i = 0; i < mHex.Length; i += 2) { if (!byte.TryParse(mHex.Substring(i, 2), System.Globalization.NumberStyles.HexNumber, null, out vBytes[i / 2])) { vBytes[i / 2] = 0; } } return System.Text.ASCIIEncoding.Default.GetString(vBytes); } #endregion /// /// 取出字符串里面的HTML标签 /// /// 字符串 /// public static string replaceHTML(string strHtml) { string strhtml = System.Text.RegularExpressions.Regex.Replace(strHtml, "<[^>]+?>|\"|'|\\|/", ""); strhtml = System.Text.RegularExpressions.Regex.Replace(strhtml, "
", "", System.Text.RegularExpressions.RegexOptions.IgnoreCase); return strhtml.Replace(" ", ""); } /// /// 去掉字符串里面的换行符 /// /// 字符串 /// public static string clearString_R_N(string Str) { string tempStr = Str.Replace((char)13, (char)0); return tempStr.Replace((char)10, (char)0); } } }