提交rbac
提交设置右键错位的bug
This commit is contained in:
316
DH.RBAC/Utility/Other/StringHelper.cs
Normal file
316
DH.RBAC/Utility/Other/StringHelper.cs
Normal file
@ -0,0 +1,316 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DH.RBAC.Utility.Other
|
||||
{
|
||||
/// <summary>
|
||||
/// 字符串操作类
|
||||
/// </summary>
|
||||
public static class StringHelper
|
||||
{
|
||||
/// <summary>
|
||||
/// 把字符串按照分隔符转换成 List
|
||||
/// </summary>
|
||||
/// <param name="str">源字符串</param>
|
||||
/// <param name="speater">分隔符</param>
|
||||
/// <param name="toLower">是否转换为小写</param>
|
||||
/// <returns></returns>
|
||||
public static List<string> SplitToList(this string str, char speater = ',', bool toLower = false)
|
||||
{
|
||||
List<string> list = new List<string>();
|
||||
string[] ss = str.Split(speater);
|
||||
foreach (string s in ss)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(s) && s != speater.ToString())
|
||||
{
|
||||
string strVal = s;
|
||||
if (toLower)
|
||||
{
|
||||
strVal = s.ToLower();
|
||||
}
|
||||
list.Add(strVal);
|
||||
}
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 把 List<string> 按照分隔符组装成 string
|
||||
/// </summary>
|
||||
/// <param name="list"></param>
|
||||
/// <param name="speater"></param>
|
||||
/// <returns></returns>
|
||||
public static string GetStrArray(this List<string> list, string speater = ",")
|
||||
{
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for (int i = 0; i < list.Count; i++)
|
||||
{
|
||||
if (i == list.Count - 1)
|
||||
{
|
||||
sb.Append(list[i]);
|
||||
}
|
||||
else
|
||||
{
|
||||
sb.Append(list[i]);
|
||||
sb.Append(speater);
|
||||
}
|
||||
}
|
||||
return sb.ToString();
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 删除最后结尾的指定字符后的字符
|
||||
/// </summary>
|
||||
public static string DelLastChar(this string str, string strChar = ",")
|
||||
{
|
||||
return str.Substring(0, str.LastIndexOf(strChar));
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 转全角的函数(SBC case)
|
||||
/// </summary>
|
||||
/// <param name="input"></param>
|
||||
/// <returns></returns>
|
||||
public static string ToSBC(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>
|
||||
/// 转半角的函数(SBC case)
|
||||
/// </summary>
|
||||
/// <param name="input">输入</param>
|
||||
/// <returns></returns>
|
||||
public static string ToDBC(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>
|
||||
/// 获取正确的Id,如果不是正整数,返回0
|
||||
/// </summary>
|
||||
/// <param name="value"></param>
|
||||
/// <returns>返回正确的整数ID,失败返回0</returns>
|
||||
public static int ToInt32(this string value)
|
||||
{
|
||||
if (IsNumberId(value))
|
||||
return int.Parse(value);
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 检查一个字符串是否是纯数字构成的,一般用于查询字符串参数的有效性验证。(0除外)
|
||||
/// </summary>
|
||||
/// <param name="_value">需验证的字符串。。</param>
|
||||
/// <returns>是否合法的bool值。</returns>
|
||||
public static bool IsNumberId(string _value)
|
||||
{
|
||||
return QuickValidate("^[1-9]*[0-9]*$", _value);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 快速验证一个字符串是否符合指定的正则表达式。
|
||||
/// </summary>
|
||||
/// <param name="_express">正则表达式的内容。</param>
|
||||
/// <param name="_value">需验证的字符串。</param>
|
||||
/// <returns>是否合法的bool值。</returns>
|
||||
public static bool QuickValidate(string _express, string _value)
|
||||
{
|
||||
if (_value == null) return false;
|
||||
Regex myRegex = new Regex(_express);
|
||||
if (_value.Length == 0)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return myRegex.IsMatch(_value);
|
||||
}
|
||||
/// <summary>
|
||||
/// 得到字符串长度,一个汉字长度为2
|
||||
/// </summary>
|
||||
/// <param name="inputString">参数字符串</param>
|
||||
/// <returns></returns>
|
||||
public static int StrLength(this string inputString)
|
||||
{
|
||||
System.Text.ASCIIEncoding ascii = new System.Text.ASCIIEncoding();
|
||||
int tempLen = 0;
|
||||
byte[] s = ascii.GetBytes(inputString);
|
||||
for (int i = 0; i < s.Length; i++)
|
||||
{
|
||||
if ((int)s[i] == 63)
|
||||
tempLen += 2;
|
||||
else
|
||||
tempLen += 1;
|
||||
}
|
||||
return tempLen;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 截取指定长度字符串
|
||||
/// </summary>
|
||||
/// <param name="inputString">要处理的字符串</param>
|
||||
/// <param name="len">指定长度</param>
|
||||
/// <returns>返回处理后的字符串</returns>
|
||||
public static string splitString(this string inputString, int len)
|
||||
{
|
||||
bool isShowFix = false;
|
||||
if (len % 2 == 1)
|
||||
{
|
||||
isShowFix = true;
|
||||
len--;
|
||||
}
|
||||
System.Text.ASCIIEncoding ascii = new System.Text.ASCIIEncoding();
|
||||
int tempLen = 0;
|
||||
string tempString = "";
|
||||
byte[] s = ascii.GetBytes(inputString);
|
||||
for (int i = 0; i < s.Length; i++)
|
||||
{
|
||||
if ((int)s[i] == 63)
|
||||
tempLen += 2;
|
||||
else
|
||||
tempLen += 1;
|
||||
|
||||
try
|
||||
{
|
||||
tempString += inputString.Substring(i, 1);
|
||||
}
|
||||
catch
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
if (tempLen > len)
|
||||
break;
|
||||
}
|
||||
|
||||
byte[] mybyte = System.Text.Encoding.Default.GetBytes(inputString);
|
||||
if (isShowFix && mybyte.Length > len)
|
||||
tempString += "…";
|
||||
return tempString;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// HTML转行成TEXT
|
||||
/// </summary>
|
||||
/// <param name="strHtml"></param>
|
||||
/// <returns></returns>
|
||||
public static string HtmlToTxt(this string strHtml)
|
||||
{
|
||||
string[] aryReg ={
|
||||
@"<script[^>]*?>.*?</script>",
|
||||
@"<(\/\s*)?!?((\w+:)?\w+)(\w+(\s*=?\s*(([""'])(\\[""'tbnr]|[^\7])*?\7|\w+)|.{0})|\s)*?(\/\s*)?>",
|
||||
@"([\r\n])[\s]+",
|
||||
@"&(quot|#34);",
|
||||
@"&(amp|#38);",
|
||||
@"&(lt|#60);",
|
||||
@"&(gt|#62);",
|
||||
@"&(nbsp|#160);",
|
||||
@"&(iexcl|#161);",
|
||||
@"&(cent|#162);",
|
||||
@"&(pound|#163);",
|
||||
@"&(copy|#169);",
|
||||
@"&#(\d+);",
|
||||
@"-->",
|
||||
@"<!--.*\n"
|
||||
};
|
||||
|
||||
string newReg = aryReg[0];
|
||||
string strOutput = strHtml;
|
||||
for (int i = 0; i < aryReg.Length; i++)
|
||||
{
|
||||
Regex regex = new Regex(aryReg[i], RegexOptions.IgnoreCase);
|
||||
strOutput = regex.Replace(strOutput, string.Empty);
|
||||
}
|
||||
|
||||
strOutput.Replace("<", "");
|
||||
strOutput.Replace(">", "");
|
||||
strOutput.Replace("\r\n", "");
|
||||
|
||||
|
||||
return strOutput;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 判断对象是否为空,为空返回true
|
||||
/// </summary>
|
||||
/// <typeparam name="T">要验证的对象的类型</typeparam>
|
||||
/// <param name="data">要验证的对象</param>
|
||||
public static bool IsNullOrEmpty(this object data)
|
||||
{
|
||||
//如果为null
|
||||
if (data == null)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (string.IsNullOrEmpty(data.ToString().Trim()))
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
/// <summary>
|
||||
/// 判断对象是否为空,为空返回true
|
||||
/// </summary>
|
||||
/// <typeparam name="T">要验证的对象的类型</typeparam>
|
||||
/// <param name="data">要验证的对象</param>
|
||||
public static bool IsNullOrEmpty<T>(this List<T> collection)
|
||||
{
|
||||
if (collection == null)
|
||||
return true;
|
||||
if (collection.Count() == 0)
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
public static bool IsNullOrEmpty(this DataSet ds)
|
||||
{
|
||||
if (ds == null)
|
||||
return true;
|
||||
if (ds.Tables.Count == 0)
|
||||
return true;
|
||||
return ds.Tables[0].IsNullOrEmpty();
|
||||
}
|
||||
|
||||
public static bool IsNullOrEmpty(this DataTable dt)
|
||||
{
|
||||
if (dt == null)
|
||||
return true;
|
||||
if (dt.Rows.Count == 0)
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user