📄 stringhelper.cs
字号:
namespace PowerEasy.Common
{
using Microsoft.VisualBasic;
using System;
using System.Security.Cryptography;
using System.Text;
using System.Text.RegularExpressions;
using System.Web;
public static class StringHelper
{
public static void AppendString(StringBuilder sb, string append)
{
AppendString(sb, append, ",");
}
public static void AppendString(StringBuilder sb, string append, string split)
{
if (sb.Length == 0)
{
sb.Append(append);
}
else
{
sb.Append(split);
sb.Append(append);
}
}
public static string Base64StringDecode(string input)
{
byte[] bytes = Convert.FromBase64String(input);
return Encoding.UTF8.GetString(bytes);
}
public static string Base64StringEncode(string input)
{
return Convert.ToBase64String(Encoding.UTF8.GetBytes(input));
}
public static bool CheckNodePurview(string arrstr1, string arrstr2)
{
if (!string.IsNullOrEmpty(arrstr1) && !string.IsNullOrEmpty(arrstr2))
{
string[] strArray = arrstr1.Split(new char[] { Convert.ToChar(",") });
string[] strArray2 = arrstr2.Split(new char[] { Convert.ToChar(",") });
foreach (string str in strArray)
{
foreach (string str2 in strArray2)
{
if (!string.IsNullOrEmpty(str2.Trim()) && (str2.Trim() == str.Trim()))
{
return true;
}
}
}
}
return false;
}
public static string CollectionFilter(string conStr, string tagName, int fType)
{
string input = conStr;
switch (fType)
{
case 1:
return Regex.Replace(input, "<" + tagName + "([^>])*>", "", RegexOptions.IgnoreCase);
case 2:
return Regex.Replace(input, "<" + tagName + "([^>])*>.*?</" + tagName + "([^>])*>", "", RegexOptions.IgnoreCase);
case 3:
return Regex.Replace(Regex.Replace(input, "<" + tagName + "([^>])*>", "", RegexOptions.IgnoreCase), "</" + tagName + "([^>])*>", "", RegexOptions.IgnoreCase);
}
return input;
}
public static string DecodeIP(long ip)
{
string[] strArray = new string[] { ((ip >> 0x18) & 0xffL).ToString(), ".", ((ip >> 0x10) & 0xffL).ToString(), ".", ((ip >> 8) & 0xffL).ToString(), ".", (ip & 0xffL).ToString() };
return string.Concat(strArray);
}
public static string DecodeLockIP(string lockIP)
{
StringBuilder builder = new StringBuilder(0x100);
if (!string.IsNullOrEmpty(lockIP))
{
try
{
string[] strArray = lockIP.Split(new string[] { "$$$" }, StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < strArray.Length; i++)
{
string[] strArray2 = strArray[i].Split(new string[] { "----" }, StringSplitOptions.RemoveEmptyEntries);
builder.Append(DecodeIP(Convert.ToInt64(strArray2[0])) + "----" + DecodeIP(Convert.ToInt64(strArray2[1])) + "\n");
}
return builder.ToString().TrimEnd(new char[] { '\n' });
}
catch (IndexOutOfRangeException)
{
return builder.ToString();
}
}
return builder.ToString();
}
public static double EncodeIP(string sip)
{
if (string.IsNullOrEmpty(sip))
{
return 0.0;
}
string[] strArray = sip.Split(new char[] { '.' });
long num = 0L;
foreach (string str in strArray)
{
byte num2;
if (byte.TryParse(str, out num2))
{
num = (num << 8) | num2;
}
else
{
return 0.0;
}
}
return (double) num;
}
public static string EncodeLockIP(string ipList)
{
StringBuilder builder = new StringBuilder(0x100);
if (!string.IsNullOrEmpty(ipList.Trim()))
{
string[] strArray = ipList.Split(new char[] { '\n' });
for (int i = 0; i < strArray.Length; i++)
{
if (!string.IsNullOrEmpty(strArray[i]) && strArray[i].Contains("----"))
{
string[] strArray2 = strArray[i].Split(new string[] { "----" }, StringSplitOptions.RemoveEmptyEntries);
if (strArray2.Length < 2)
{
throw new ArgumentException("请填写正确网站黑白名单中的IP地址!");
}
if (!DataValidator.IsIP(strArray2[0]) || !DataValidator.IsIP(strArray2[1]))
{
throw new ArgumentException("请填写正确网站黑白名单中的IP地址!");
}
if (i == 0)
{
builder.Append(EncodeIP(strArray2[0]) + "----" + EncodeIP(strArray2[1]));
}
else
{
builder.Append(string.Concat(new object[] { "$$$", EncodeIP(strArray2[0]), "----", EncodeIP(strArray2[1]) }));
}
}
}
}
return builder.ToString();
}
public static string FilterScript(string conStr, string filterItem)
{
string str = conStr.Replace("\r", "{$Chr13}").Replace("\n", "{$Chr10}");
foreach (string str2 in filterItem.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries))
{
switch (str2)
{
case "Iframe":
str = CollectionFilter(str, str2, 2);
break;
case "Object":
str = CollectionFilter(str, str2, 2);
break;
case "Script":
str = CollectionFilter(str, str2, 2);
break;
case "Style":
str = CollectionFilter(str, str2, 2);
break;
case "Div":
str = CollectionFilter(str, str2, 3);
break;
case "Span":
str = CollectionFilter(str, str2, 3);
break;
case "Table":
str = CollectionFilter(CollectionFilter(CollectionFilter(CollectionFilter(CollectionFilter(str, str2, 3), "Tbody", 3), "Tr", 3), "Td", 3), "Th", 3);
break;
case "Img":
str = CollectionFilter(str, str2, 1);
break;
case "Font":
str = CollectionFilter(str, str2, 3);
break;
case "A":
str = CollectionFilter(str, str2, 3);
break;
case "Html":
str = StripTags(str);
goto Label_01FB;
}
}
Label_01FB:
return str.Replace("{$Chr13}", "\r").Replace("{$Chr10}", "\n");
}
public static bool FoundCharInArr(string checkStr, string findStr)
{
return FoundCharInArr(checkStr, findStr, ",");
}
public static bool FoundCharInArr(string checkStr, string findStr, string split)
{
bool flag = false;
if (string.IsNullOrEmpty(split))
{
split = ",";
}
if (string.IsNullOrEmpty(checkStr))
{
return false;
}
if (checkStr.IndexOf(split) != -1)
{
if (findStr.IndexOf(split) != -1)
{
string[] strArray = checkStr.Split(new char[] { Convert.ToChar(split) });
string[] strArray2 = findStr.Split(new char[] { Convert.ToChar(split) });
foreach (string str in strArray)
{
foreach (string str2 in strArray2)
{
if (string.Compare(str, str2) == 0)
{
flag = true;
break;
}
}
if (flag)
{
return flag;
}
}
return flag;
}
foreach (string str3 in checkStr.Split(new char[] { Convert.ToChar(split) }))
{
if (string.Compare(str3, findStr) == 0)
{
return true;
}
}
return flag;
}
if (string.Compare(checkStr, findStr) == 0)
{
flag = true;
}
return flag;
}
public static bool FoundInArr(string checkStr, string findStr, string split)
{
bool flag = false;
if (checkStr.IndexOf(findStr) != -1)
{
foreach (string str in checkStr.Split(new string[] { split }, StringSplitOptions.RemoveEmptyEntries))
{
if (string.Compare(str, findStr) == 0)
{
return true;
}
}
return flag;
}
if (string.Compare(checkStr, findStr) == 0)
{
flag = true;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -