public
class
Input
{
/// <summary>
/// 檢測是否整數(shù)型數(shù)據(jù)
/// </summary>
/// <param name="Num">待檢查數(shù)據(jù)</param>
/// <returns></returns>
public
static
bool
IsInteger(
string
Input)
{
if
(Input ==
null
)
{
return
false
;
}
else
{
return
IsInteger(Input,
true
);
}
}
/// <summary>
/// 是否全是正整數(shù)
/// </summary>
/// <param name="Input"></param>
/// <returns></returns>
public
static
bool
IsInteger(
string
Input,
bool
Plus)
{
if
(Input ==
null
)
{
return
false
;
}
else
{
string
pattern =
"^-?[0-9]+$"
;
if
(Plus)
pattern =
"^[0-9]+$"
;
if
(Regex.Match(Input, pattern, RegexOptions.Compiled).Success)
{
return
true
;
}
else
{
return
false
;
}
}
}
/// <summary>
/// 判斷輸入是否為日期類型
/// </summary>
/// <param name="s">待檢查數(shù)據(jù)</param>
/// <returns></returns>
public
static
bool
IsDate(
string
s)
{
try
{
DateTime d = DateTime.Parse(s);
return
true
;
}
catch
{
return
false
;
}
}
/// <summary>
/// 過濾字符串中的html代碼
/// </summary>
/// <param name="Str"></param>
/// <returns>返回過濾之后的字符串</returns>
public
static
string
LostHTML(
string
Str)
{
string
Re_Str =
""
;
if
(Str !=
null
)
{
if
(Str !=
string
.Empty)
{
string
Pattern =
"<\/*[^<>]*>"
;
Re_Str = Regex.Replace(Str, Pattern,
""
);
}
}
return
(Re_Str.Replace(
"\r\n"
,
""
)).Replace(
"\r"
,
""
);
}
public
static
string
LostPage(
string
Str)
{
string
Re_Str =
""
;
if
(Str !=
null
)
{
if
(Str !=
string
.Empty)
{
string
Pattern =
"\[NT:PAGE\/*[^<>]*\$\]"
;
Re_Str = Regex.Replace(Str, Pattern,
""
);
}
}
return
Re_Str;
}
public
static
string
LostVoteStr(
string
Str)
{
string
Re_Str =
""
;
if
(Str !=
null
)
{
if
(Str !=
string
.Empty)
{
string
Pattern =
"\[NT:unLoop\/*[^<>]*\[\/NT:unLoop\]"
;
Re_Str = Regex.Replace(Str, Pattern,
""
);
}
}
return
Re_Str;
}
/// <summary>
/// 根據(jù)新聞標(biāo)題的屬性設(shè)置返回設(shè)置后的標(biāo)題
/// </summary>
/// <param name="Title">標(biāo)題</param>
/// <param name="TitleColor">標(biāo)題顏色</param>
/// <param name="IsB">是否粗體</param>
/// <param name="IsI">是否斜體</param>
/// <param name="TitleNum">返回標(biāo)題字?jǐn)?shù)</param>
/// <returns>返回設(shè)置后的標(biāo)題</returns>
public
static
string
GetColorTitleSubStr(
string
Title,
string
TitleColor,
int
IsB,
int
IsI,
int
TitleNum)
{
string
Return_title =
""
;
string
FormatTitle = LostHTML(Title);
if
(FormatTitle !=
null
&& FormatTitle !=
string
.Empty)
{
FormatTitle = GetSubString(FormatTitle, TitleNum);
if
(IsB == 1)
{
FormatTitle =
"<b>"
+ FormatTitle +
"</b>"
;
}
if
(IsI == 1)
{
FormatTitle =
"<i>"
+ FormatTitle +
"</i>"
;
}
if
(TitleColor !=
null
&& TitleColor !=
string
.Empty)
{
FormatTitle =
"<font style="
color:
" + TitleColor + "
;
">"
+ FormatTitle +
"</font>"
;
}
Return_title = FormatTitle;
}
return
Return_title;
}
/// <summary>
/// 截取字符串函數(shù)
/// </summary>
/// <param name="Str">所要截取的字符串</param>
/// <param name="Num">截取字符串的長度</param>
/// <returns></returns>
public
static
string
GetSubString(
string
Str,
int
Num)
{
if
(Str ==
null
|| Str ==
""
)
return
""
;
string
outstr =
""
;
int
n = 0;
foreach
(
char
ch
in
Str)
{
n += System.Text.Encoding.Default.GetByteCount(ch.ToString());
if
(n > Num)
break
;
else
outstr += ch;
}
return
outstr;
}
/// <summary>
/// 截取字符串函數(shù)
/// </summary>
/// <param name="Str">所要截取的字符串</param>
/// <param name="Num">截取字符串的長度</param>
/// <param name="Num">截取字符串后省略部分的字符串</param>
/// <returns></returns>
public
static
string
GetSubString(
string
Str,
int
Num,
string
LastStr)
{
if
(
string
.IsNullOrEmpty(Str))
return
""
;
return
(Str.Length > Num) ? Str.Substring(0, Num) + LastStr : Str;
}
/// <summary>
/// 驗(yàn)證字符串是否是圖片路徑
/// </summary>
/// <param name="Input">待檢測的字符串</param>
/// <returns>返回true 或 false</returns>
public
static
bool
IsImgString(
string
Input)
{
return
IsImgString(Input,
"/{@dirfile}/"
);
}
public
static
bool
IsImgString(
string
Input,
string
checkStr)
{
bool
re_Val =
false
;
if
(Input !=
string
.Empty)
{
string
s_input = Input.ToLower();
if
(s_input.IndexOf(checkStr.ToLower()) != -1 && s_input.IndexOf(
"."
) != -1)
{
string
Ex_Name = s_input.Substring(s_input.LastIndexOf(
"."
) + 1).ToString().ToLower();
if
(Ex_Name ==
"jpg"
|| Ex_Name ==
"gif"
|| Ex_Name ==
"bmp"
|| Ex_Name ==
"png"
)
{
re_Val =
true
;
}
}
}
return
re_Val;
}
/// <summary>
/// 將字符轉(zhuǎn)化為HTML編碼
/// </summary>
/// <param name="str">待處理的字符串</param>
/// <returns></returns>
public
static
string
HtmlEncode(
string
Input)
{
return
HttpContext.Current.Server.HtmlEncode(Input);
}
/// <summary>
///
/// </summary>
/// <param name="Input"></param>
/// <returns></returns>
public
static
string
HtmlDecode(
string
Input)
{
return
HttpContext.Current.Server.HtmlDecode(Input);
}
/// <summary>
/// URL地址編碼
/// </summary>
/// <param name="Input"></param>
/// <returns></returns>
public
static
string
URLEncode(
string
Input)
{
return
HttpContext.Current.Server.UrlEncode(Input);
}
/// <summary>
/// URL地址解碼
/// </summary>
/// <param name="Input"></param>
/// <returns></returns>
public
static
string
URLDecode(
string
Input)
{
return
HttpContext.Current.Server.UrlDecode(Input);
}
/// <summary>
/// 過濾字符
/// </summary>
/// <param name="Input"></param>
/// <returns></returns>
public
static
string
Filter(
string
sInput)
{
if
(sInput ==
null
|| sInput ==
""
)
return
null
;
string
sInput1 = sInput.ToLower();
string
output = sInput;
string
pattern =
@"*|and|exec|insert|select|delete|update|count|master|truncate|declare|char(|mid(|chr(|'"
;
if
(Regex.Match(sInput1, Regex.Escape(pattern), RegexOptions.Compiled | RegexOptions.IgnoreCase).Success)
{
throw
new
Exception(
"字符串中含有非法字符!"
);
}
else
{
output = output.Replace(
"'"
,
"''"
);
}
return
output;
}
/// <summary>
/// 過濾特殊字符/前臺會員
/// </summary>
/// <param name="Input"></param>
/// <returns></returns>
public
static
string
Htmls(
string
Input)
{
if
(Input !=
string
.Empty && Input !=
null
)
{
string
ihtml = Input.ToLower();
ihtml = ihtml.Replace(
"<script"
,
"<script"
);
ihtml = ihtml.Replace(
"script>"
,
"script>"
);
ihtml = ihtml.Replace(
"<%"
,
"<%"
);
ihtml = ihtml.Replace(
"%>"
,
"%>"
);
ihtml = ihtml.Replace(
"<$"
,
"<$"
);
ihtml = ihtml.Replace(
"$>"
,
"$>"
);
return
ihtml;
}
else
{
return
string
.Empty;
}
}
/// <summary>
/// 字符串字符處理
/// </summary>
/// <param name="chr">等待處理的字符串</param>
/// <returns>處理后的字符串</returns>
/// //把HTML代碼轉(zhuǎn)換成TXT格式
public
static
String ToTxt(String Input)
{
StringBuilder sb =
new
StringBuilder(Input);
sb.Replace(
" "
,
" "
);
sb.Replace(
"<br>"
, "
");
sb.Replace(
"<br>"
, "
");
sb.Replace(
"<br />"
, "
");
sb.Replace(
"<br />"
, "
");
sb.Replace(
"<"
,
"<"
);
sb.Replace(
">"
,
">"
);
sb.Replace(
"&"
,
"&"
);
return
sb.ToString();
}
/// <summary>
/// 字符串字符處理
/// </summary>
/// <param name="chr">等待處理的字符串</param>
/// <returns>處理后的字符串</returns>
/// //把HTML代碼轉(zhuǎn)換成TXT格式
public
static
String ToshowTxt(String Input)
{
StringBuilder sb =
new
StringBuilder(Input);
sb.Replace(
"<"
,
"<"
);
sb.Replace(
">"
,
">"
);
return
sb.ToString();
}
/// <summary>
/// 把字符轉(zhuǎn)化為文本格式
/// </summary>
/// <param name="Input"></param>
/// <returns></returns>
public
static
string
ForTXT(
string
Input)
{
StringBuilder sb =
new
StringBuilder(Input);
sb.Replace(
"<font"
,
" "
);
sb.Replace(
"<span"
,
" "
);
sb.Replace(
"<style"
,
" "
);
sb.Replace(
"<div"
,
" "
);
sb.Replace(
"<p"
,
""
);
sb.Replace(
"</p>"
,
""
);
sb.Replace(
"<label"
,
" "
);
sb.Replace(
" "
,
" "
);
sb.Replace(
"<br>"
,
""
);
sb.Replace(
"<br />"
,
""
);
sb.Replace(
"<br />"
,
""
);
sb.Replace(
"<"
,
""
);
sb.Replace(
">"
,
""
);
sb.Replace(
"&"
,
""
);
sb.Replace(
"<"
,
""
);
sb.Replace(
">"
,
""
);
return
sb.ToString();
}
/// <summary>
/// 字符串字符處理
/// </summary>
/// <param name="chr">等待處理的字符串</param>
/// <returns>處理后的字符串</returns>
/// //把TXT代碼轉(zhuǎn)換成HTML格式
public
static
String ToHtml(
string
Input)
{
StringBuilder sb =
new
StringBuilder(Input);
sb.Replace(
"&"
,
"&"
);
sb.Replace(
"<"
,
"<"
);
sb.Replace(
">"
,
">"
);
sb.Replace("
", "
<br />");
sb.Replace("
", "
<br />");
sb.Replace(
" "
,
" "
);
return
sb.ToString();
}
public
static
String ToHtmlWithOutImg(
string
Input)
{
StringBuilder sb =
new
StringBuilder(Input);
if
(Input.IndexOf(
"/editor/editor/images/smiley/"
) <= 0)
{
sb.Replace(
"<"
,
"<"
);
sb.Replace(
">"
,
">"
);
}
sb.Replace(
"&"
,
"&"
);
sb.Replace("
", "
<br />");
sb.Replace("
", "
<br />");
sb.Replace(
" "
,
" "
);
return
sb.ToString();
}
/// <summary>
/// MD5加密字符串處理
/// </summary>
/// <param name="Half">加密是16位還是32位;如果為true為16位</param>
/// <param name="Input">待加密碼字符串</param>
/// <returns></returns>
public
static
string
MD5(
string
Input,
bool
Half)
{
string
output = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(Input,
"MD5"
).ToLower();
if
(Half)
output = output.Substring(8, 16);
return
output;
}
public
static
string
MD5(
string
Input)
{
return
MD5(Input,
true
);
}
/// <summary>
/// 字符串加密 進(jìn)行位移操作
/// </summary>
/// <param name="str">待加密數(shù)據(jù)</param>
/// <returns>加密后的數(shù)據(jù)</returns>
public
static
string
EncryptString(
string
Input)
{
string
_temp =
""
;
int
_inttemp;
char
[] _chartemp = Input.ToCharArray();
for
(
int
i = 0; i < _chartemp.Length; i++)
{
_inttemp = _chartemp[i] + 1;
_chartemp[i] = (
char
)_inttemp;
_temp += _chartemp[i];
}
return
_temp;
}
/// <summary>
/// 字符串解密
/// </summary>
/// <param name="str">待解密數(shù)據(jù)</param>
/// <returns>解密成功后的數(shù)據(jù)</returns>
public
static
string
NcyString(
string
Input)
{
string
_temp =
""
;
int
_inttemp;
char
[] _chartemp = Input.ToCharArray();
for
(
int
i = 0; i < _chartemp.Length; i++)
{
_inttemp = _chartemp[i] - 1;
_chartemp[i] = (
char
)_inttemp;
_temp += _chartemp[i];
}
return
_temp;
}
/// <summary>
/// 檢測含中文字符串實(shí)際長度
/// </summary>
/// <param name="str">待檢測的字符串</param>
/// <returns>返回正整數(shù)</returns>
public
static
int
NumChar(
string
Input)
{
ASCIIEncoding n =
new
ASCIIEncoding();
byte
[] b = n.GetBytes(Input);
int
l = 0;
for
(
int
i = 0; i <= b.Length - 1; i++)
{
if
(b[i] == 63)
{
l++;
}
l++;
}
return
l;
}
/// <summary>
/// 檢測是否合法日期
/// </summary>
/// <param name="str">待檢測的字符串</param>
/// <returns></returns>
public
static
bool
ChkDate(
string
Input)
{
try
{
DateTime t1 = DateTime.Parse(Input);
return
true
;
}
catch
{
return
false
;
}
}
/// <summary>
/// 轉(zhuǎn)換日期時間函數(shù)
/// </summary>
/// <returns></returns>
public
static
string
ReDateTime()
{
return
System.DateTime.Now.ToString(
"yyyyMMdd"
);
}
/// <summary>
/// 去除字符串最后一個','號
/// </summary>
/// <param name="chr">:要做處理的字符串</param>
/// <returns>返回已處理的字符串</returns>
public
static
string
CutComma(
string
Input)
{
return
CutComma(Input,
","
);
}
public
static
string
CutComma(
string
Input,
string
indexStr)
{
if
(Input.IndexOf(indexStr) >= 0)
return
Input.Remove(Input.LastIndexOf(indexStr));
else
return
Input;
}
/// <summary>
/// 去掉首尾P
/// </summary>
/// <param name="Input"></param>
/// <returns></returns>
public
static
string
RemovePor(
string
Input)
{
if
(Input !=
string
.Empty && Input !=
null
)
{
string
TMPStr = Input;
if
(Input.ToLower().Substring(0, 3) ==
"<p>"
)
{
TMPStr = TMPStr.Substring(3);
}
if
(TMPStr.Substring(TMPStr.Length - 4) ==
"</p>"
)
{
TMPStr = TMPStr.Remove(TMPStr.ToLower().LastIndexOf(
"</p>"
));
}
return
TMPStr;
}
else
{
return
string
.Empty;
}
}
/// <summary>
/// 判斷參數(shù)是否合法
/// </summary>
/// <param name="ID">要判斷的參數(shù)</param>
/// <returns>返回已處理的字符串</returns>
public
static
string
checkID(
string
ID)
{
if
(ID ==
null
&& ID ==
string
.Empty)
throw
new
Exception(
"參數(shù)傳遞錯誤!<li>參數(shù)不能為空</li>"
);
return
ID;
}
/// <summary>
/// 去除編號字符串中的'-1'
/// </summary>
/// <param name="id"></param>
/// <returns>如果為空則返回'IsNull'</returns>
public
static
string
Losestr(
string
id)
{
if
(id ==
null
|| id ==
""
|| id ==
string
.Empty)
return
"IsNull"
;
id = id.Replace(
"'-1',"
,
""
);
if
(id ==
null
|| id ==
""
|| id ==
string
.Empty)
return
"IsNull"
;
else
return
id;
}
public
static
string
FilterHTML(
string
html)
{
if
(html ==
null
)
return
""
;
System.Text.RegularExpressions.Regex regex1 =
new
System.Text.RegularExpressions.Regex(
@"<script[sS]+</script *>"
, System.Text.RegularExpressions.RegexOptions.IgnoreCase);
System.Text.RegularExpressions.Regex regex2 =
new
System.Text.RegularExpressions.Regex(
@" href *= *[sS]*script *:"
, System.Text.RegularExpressions.RegexOptions.IgnoreCase);
System.Text.RegularExpressions.Regex regex3 =
new
System.Text.RegularExpressions.Regex(
@" on[sS]*="
, System.Text.RegularExpressions.RegexOptions.IgnoreCase);
System.Text.RegularExpressions.Regex regex4 =
new
System.Text.RegularExpressions.Regex(
@"<iframe[sS]+</iframe *>"
, System.Text.RegularExpressions.RegexOptions.IgnoreCase);
System.Text.RegularExpressions.Regex regex5 =
new
System.Text.RegularExpressions.Regex(
@"<frameset[sS]+</frameset *>"
, System.Text.RegularExpressions.RegexOptions.IgnoreCase);
System.Text.RegularExpressions.Regex regex6 =
new
System.Text.RegularExpressions.Regex(
@"<img[^>]+>"
, System.Text.RegularExpressions.RegexOptions.IgnoreCase);
System.Text.RegularExpressions.Regex regex7 =
new
System.Text.RegularExpressions.Regex(
@"</p>"
, System.Text.RegularExpressions.RegexOptions.IgnoreCase);
System.Text.RegularExpressions.Regex regex8 =
new
System.Text.RegularExpressions.Regex(
@"<p>"
, System.Text.RegularExpressions.RegexOptions.IgnoreCase);
System.Text.RegularExpressions.Regex regex9 =
new
System.Text.RegularExpressions.Regex(
@"<[^>]*>"
, System.Text.RegularExpressions.RegexOptions.IgnoreCase);
html = regex1.Replace(html,
""
);
html = regex2.Replace(html,
""
);
html = regex3.Replace(html,
" _disibledevent="
);
html = regex4.Replace(html,
""
);
html = regex5.Replace(html,
""
);
html = regex6.Replace(html,
""
);
html = regex7.Replace(html,
""
);
html = regex8.Replace(html,
""
);
html = regex9.Replace(html,
""
);
html = html.Replace(
" "
,
""
);
html = html.Replace(
"</strong>"
,
""
);
html = html.Replace(
"<strong>"
,
""
);
return
html;
}
#region 加密
private
static
byte
[] Keys = { 0x41, 0x72, 0x65, 0x79, 0x6F, 0x75, 0x6D, 0x79, 0x53, 0x6E, 0x6F, 0x77, 0x6D, 0x61, 0x6E, 0x3F };
public
static
string
AESEncode(
string
encryptString,
string
encryptKey)
{
encryptKey = Utils.GetSubString(encryptKey, 32,
""
);
encryptKey = encryptKey.PadRight(32,
' '
);
RijndaelManaged rijndaelProvider =
new
RijndaelManaged();
rijndaelProvider.Key = Encoding.UTF8.GetBytes(encryptKey.Substring(0, 32));
rijndaelProvider.IV = Keys;
ICryptoTransform rijndaelEncrypt = rijndaelProvider.CreateEncryptor();
byte
[] inputData = Encoding.UTF8.GetBytes(encryptString);
byte
[] encryptedData = rijndaelEncrypt.TransformFinalBlock(inputData, 0, inputData.Length);
return
Convert.ToBase64String(encryptedData);
}
public
static
string
AESDecode(
string
decryptString,
string
decryptKey)
{
try
{
decryptKey = Utils.GetSubString(decryptKey, 32,
""
);
decryptKey = decryptKey.PadRight(32,
' '
);
RijndaelManaged rijndaelProvider =
new
RijndaelManaged();
rijndaelProvider.Key = Encoding.UTF8.GetBytes(decryptKey);
rijndaelProvider.IV = Keys;
ICryptoTransform rijndaelDecrypt = rijndaelProvider.CreateDecryptor();
byte
[] inputData = Convert.FromBase64String(decryptString);
byte
[] decryptedData = rijndaelDecrypt.TransformFinalBlock(inputData, 0, inputData.Length);
return
Encoding.UTF8.GetString(decryptedData);
}
catch
{
return
""
;
}
}
/// <summary>
/// DES加密字符串
/// </summary>
/// <param name="encryptString">待加密的字符串</param>
/// <param name="encryptKey">加密密鑰,要求為8位</param>
/// <returns>加密成功返回加密后的字符串,失敗返回源串</returns>
public
static
string
DESEncode(
string
encryptString,
string
encryptKey)
{
encryptKey = Utils.GetSubString(encryptKey, 8,
""
);
encryptKey = encryptKey.PadRight(8,
' '
);
byte
[] rgbKey = Encoding.UTF8.GetBytes(encryptKey.Substring(0, 8));
byte
[] rgbIV = Keys;
byte
[] inputByteArray = Encoding.UTF8.GetBytes(encryptString);
DESCryptoServiceProvider dCSP =
new
DESCryptoServiceProvider();
MemoryStream mStream =
new
MemoryStream();
CryptoStream cStream =
new
CryptoStream(mStream, dCSP.CreateEncryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
cStream.Write(inputByteArray, 0, inputByteArray.Length);
cStream.FlushFinalBlock();
return
Convert.ToBase64String(mStream.ToArray());
}
/// <summary>
/// DES解密字符串
/// </summary>
/// <param name="decryptString">待解密的字符串</param>
/// <param name="decryptKey">解密密鑰,要求為8位,和加密密鑰相同</param>
/// <returns>解密成功返回解密后的字符串,失敗返源串</returns>
public
static
string
DESDecode(
string
decryptString,
string
decryptKey)
{
try
{
decryptKey = Utils.GetSubString(decryptKey, 8,
""
);
decryptKey = decryptKey.PadRight(8,
' '
);
byte
[] rgbKey = Encoding.UTF8.GetBytes(decryptKey);
byte
[] rgbIV = Keys;
byte
[] inputByteArray = Convert.FromBase64String(decryptString);
DESCryptoServiceProvider DCSP =
new
DESCryptoServiceProvider();
MemoryStream mStream =
new
MemoryStream();
CryptoStream cStream =
new
CryptoStream(mStream, DCSP.CreateDecryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
cStream.Write(inputByteArray, 0, inputByteArray.Length);
cStream.FlushFinalBlock();
return
Encoding.UTF8.GetString(mStream.ToArray());
}
catch
{
return
""
;
}
}
#endregion
}