萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> 編程語言綜合 >> C#字符串工具類 截取、過濾、格式判斷等

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語句中的轉義字

copyright © 萬盛學電腦網 all rights reserved