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);
}
}
}