网站首页  汉语字词  英语词汇  考试资料  写作素材  旧版资料

请输入您要查询的范文:

 

标题 C#字符串工具类截取过滤格式判断等
范文
    C#字符串工具类,实现的功能包括:判断某值是否在枚举内(位枚举)、将全角数字转换为数字、判断是否为IP、获得当前页面客户端的IP、改正sql语句中的转义字符、检测是否是正确的Url、检测是否符合email格式、SQL字符串过滤、按字节数截取字符串(不带省略号)、按字节数截取字符串(后面加省略号...)等。
    view sourceprint?001using System;
    002using System.Collections.Generic;
    003using System.Linq;
    004using System.Text;
    005using System.Text.RegularExpressions;
    006using System.Web;
    007namespace CLB.Utility.CharTools
    008{
    009 public static class StringHelper
    010 {
    011 /// <summary>
    012 /// 按字节数截取字符串(后面加省略号...)
    013 /// </summary>
    014 ///<param name="origStr"> 原始字符串</param>
    015 ///<param name="endIndex"> 提取前endIdex个字节</param>
    016 /// <returns></returns>
    017 public static string GetSubString(string origStr, int endIndex)
    018 {
    019 if (origStr == null || origStr.Length == 0 || endIndex < 0)
    020 return "";
    021 int bytesCount = System.Text.Encoding.GetEncoding("gb2312").GetByteCount(origStr);
    022 if (bytesCount > endIndex)
    023 {
    024 int readyLength = 0;
    025 int byteLength;
    026 for (int i = 0; i < origStr.Length; i++)
    027 {
    028 byteLength = System.Text.Encoding.GetEncoding("gb2312").GetByteCount(new char[] { origStr[i] });
    029 readyLength += byteLength;
    030 if (readyLength == endIndex)
    031 {
    032 origStr = origStr.Substring(0, i + 1) + "...";
    033 break;
    034 }
    035 else if (readyLength > endIndex)
    036 {
    037 origStr = origStr.Substring(0, i) + "...";
    038 break;
    039 }
    040 }
    041 }
    042 return origStr;
    043 }
    044 /// <summary>
    045 /// 按字节数截取字符串(不带省略号)
    046 /// </summary>
    047 /// <param name="origStr"> 原始字符串</param>
    048 /// <param name="endIndex"> 提取前endIdex个字节</param>
    049 /// <returns></returns>
    050 public static string GetSub1String(string origStr, int endIndex)
    051 {
    052 if (origStr == null || origStr.Length == 0 || endIndex < 0)
    053 return "";
    054 int bytesCount = System.Text.Encoding.GetEncoding("gb2312").GetByteCount(origStr);
    055 if (bytesCount > endIndex)
    056 {
    057 int readyLength = 0;
    058 int byteLength;
    059 for (int i = 0; i < origStr.Length; i++)
    060 {
    061 byteLength = System.Text.Encoding.GetEncoding("gb2312").GetByteCount(new char[] { origStr[i] });
    062 readyLength += byteLength;
    063 if (readyLength == endIndex)
    064 {
    065 origStr = origStr.Substring(0, i + 1);
    066 break;
    067 }
    068 else if (readyLength > endIndex)
    069 {
    070 origStr = origStr.Substring(0, i);
    071 break;
    072 }
    073 }
    074 }
    075 return origStr;
    076 }
    077 /// <summary>
    078 /// SQL字符串过滤
    079 ///  </summary>
    080 /// <param name="Str"></param>
    081 /// <returns></returns>
    082 public static bool ProcessSqlStr(string Str)
    083 {
    084 bool ReturnValue = true;
    085 try
    086 {
    087 if (Str.Trim() != "")
    088 {
    089 string SqlStr ="exec|insert+|select+|delete|update|count|chr|mid|master+
    |truncate|char|declare|drop+|drop
    +table|creat+|create|*|iframe|script|";
    090 SqlStr +="exec+|insert|delete+|update+|count(|count+|chr+|+mid
    (|+mid+|+master+|truncate+
    |char+|+char(|declare
    +|drop+table|creat+table";
    091 string[] anySqlStr = SqlStr.Split('|');
    092 foreach (string ss in anySqlStr)
    093 {
    094 if (Str.ToLower().IndexOf(ss) >= 0)
    095 {
    096 ReturnValue = false;
    097 break;
    098 }
    099 }
    100 }
    101 }
    102 catch
    103 {
    104 ReturnValue = false;
    105 }
    106 return ReturnValue;
    107 }
    108 /// <summary>
    109 /// 检测是否符合email格式
    110 /// </summary>
    111 /// <param name="strEmail"> 要判断的email字符串</param>
    112 ///<returns 判断结果</returns>
    113 public static bool IsValidEmail(string strEmail)
    114 {
    115 return Regex.IsMatch(strEmail, @"^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$");
    116 }
    117 /// <summary>
    118 /// 检测是否是正确的Url
    119 /// </summary>
    120 /// <param name="strUrl"> 要验证的Url</param>
    121 /// <returns>判断结果</returns>
    122 public static bool IsURL(string strUrl)
    123 {
    124 return Regex.IsMatch(strUrl, @"^(http|https)://([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]).(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0).(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0).(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])|localhost|([a-zA-Z0-9-]+.)*[a-zA-Z0-9-]+.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{1,10}))(:[0-9]+)*(/($|[a-zA-Z0-9.,?'+&%$#=~_-]+))*$");
    125 }
    126 /// <summary>
    127 /// 检测是否有Sql危险字符
    128 /// </summary>
    129 /// <param name="str"> 要判断字符串</param>
    130 ///<returns> 判断结果</returns>
    131 public static bool IsSafeSqlString(string str)
    132 {
    133 return !Regex.IsMatch(str, @"[-|;|,|/|(|)|[|]|}|{|%|@|*|!|']");
    134 }
    135 /// <summary>
    136 /// 改正sql语句中的转义字符
    137 /// </summary>
    138 public static string mashSQL(string str)
    139 {
    140 string str2;
    141 if (str == null)
    142 {
    143 str2 = "";
    144 }
    145 else
    146 {
    147 str = str.Replace("'", "'");
    148 str2 = str;
    149 }
    150 return str2;
    151 }
    152 /// <summary>
    153 /// 获得当前页面客户端的IP
    154 /// </summary>
    155 /// <returns>当前页面客户端的IP</returns>
    156 public static string GetIP()
    157 {
    158 string result = String.Empty;
    159 result = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
    160 if (null == result || result == String.Empty)
    161 {
    162 result = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
    163 }
    164 if (null == result || result == String.Empty)
    165 {
    166 result = HttpContext.Current.Request.UserHostAddress;
    167 }
    168 if (null == result || result == String.Empty || !IsIP(result))
    169 {
    170 return "0.0.0.0";
    171 }
    172 return result;
    173 }
    174 /// <summary>
    175 /// 是否为ip
    176 ///  </summary>
    177 /// <param name="ip"></param>
    178 /// <returns></returns>
    179 public static bool IsIP(string ip)
    180 {
    181 return Regex.IsMatch(ip, @"^((2[0-4]d|25[0-5]|[01]?dd?).){3}(2[0-4]d|25[0-5]|[01]?dd?)$");
    182 }
    183 /// <summary>
    184 /// 将全角数字转换为数字
    185 /// </summary>
    186 /// <param name="SBCCase"></param>
    187 /// <returns></returns>
    188 public static string SBCCaseToNumberic(string SBCCase)
    189 {
    190 char[] c = SBCCase.ToCharArray();
    191 for (int i = 0; i < c.Length; i++)
    192 {
    193 byte[] b = System.Text.Encoding.Unicode.GetBytes(c, i, 1);
    194 if (b.Length == 2)
    195 {
    196 if (b[1] == 255)
    197 {
    198 b[0] = (byte)(b[0] + 32);
    199 b[1] = 0;
    200 c[i] = System.Text.Encoding.Unicode.GetChars(b)[0];
    201 }
    202 }
    203 }
    204 return new string(c);
    205 }
    206 /// <summary>
    207 /// 判断某值是否在枚举内(位枚举)
    208 /// </summary>
    209 ///<param name="checkingValue"> 被检测的枚举值</param>
    210 ///<param name="expectedValue"> 期望的枚举值</param>
    211 /// <returns>是否包含</returns>
    212 public static bool CheckFlagsEnumEquals(Enum checkingValue, Enum expectedValue)
    213 {
    214 int intCheckingValue = Convert.ToInt32(checkingValue);
    215 int intExpectedValue = Convert.ToInt32(expectedValue);
    216 return (intCheckingValue & intExpectedValue) == intExpectedValue;
    217 }
    218 }
    219}
随便看

 

在线学习网范文大全提供好词好句、学习总结、工作总结、演讲稿等写作素材及范文模板,是学习及工作的有利工具。

 

Copyright © 2002-2024 cuapp.net All Rights Reserved
更新时间:2025/5/21 1:54:14