跟小D每日学口语

Asp.net 字符串操作基类(安全,替换,分解等)

/############################################
版权声明:
文章内容为本站编辑,创作.你可以任意转载、发布、使用但请务必明文标注文章原始出处及本声明
http://www.opent.cn  作者:浪淘沙
############################################/

/**********************************************************************************
 *
 * 功能说明:常用函数基类
 * 作者: 刘功勋;
 * 版本:V0.1(C#2.0);时间:2006-8-13
 *
 * *******************************************************************************/

/***************************************************************
* 更新记录
* 2007-1-5 更新:
* 1,取字符串右侧的几个字符
* 2,替换右侧的字符串
****************************************************************/

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Text;

namespace EC
{
    /// <summary>
    /// 常用函数基类
    /// </summary>
    public class FunObject
    {
        #region 替换字符串
        /// <summary>
        /// 功能:替换字符
        /// </summary>
        /// <param name="strVAlue">字符串</param>
        /// <returns>替换掉'的字符串</returns>
        public static string FilterSQL(string strVAlue)
        {
            string str = "";
            str = strVAlue.Replace("''", "");
            return str;
        }
        #endregion

        #region 对表 表单内容进行转换HTML操作,
        /// <summary>
        /// 功能:对表 表单内容进行转换HTML操作,
        /// </summary>
        /// <param name="fString">html字符串</param>
        /// <returns></returns>
        public static string HtmlCode(string fString)
        {
            string str = "";
            str = fString.Replace(">", "&gt;");
            str = fString.Replace("<", "&lt;");
            str = fString.Replace(" ", "&nbsp;");
            str = fString.Replace("\n", "<br />");
            str = fString.Replace("\r", "<br />");
            str = fString.Replace("\r\n", "<br />");

            return str;
        }
#endregion

        #region 判断是否:返回值:√ or ×
        /// <summary>
        /// 判断是否:返回值:√ or ×
        /// </summary>
        /// <param name="b">true 或false</param>
        /// <returns>√ or ×</returns>
        public static string Judgement(bool b)
        {
            string s = "";
            if (b == true)
                s = "<b><font color=#009900>√</font></b>";
            else
                s = "<b><font color=#FF0000>×</font></b>";
            return s;
        }
        #endregion

        #region 截取字符串
        /// <summary>
        /// 功能:截取字符串长度
        /// </summary>
        /// <param name="str">要截取的字符串</param>
        /// <param name="length">字符串长度</param>
        /// <param name="flg">true:加...,flase:不加</param>
        /// <returns></returns>
        public static string GetString(string str, int length, bool flg)
        {
            int i = 0, j = 0;
            foreach (char chr in str)
            {
                if ((int)chr > 127)
                {
                    i += 2;
                }
                else
                {
                    i++;
                }
                if (i > length)
                {
                    str = str.Substring(0, j);
                    if (flg)
                        str += "......";
                    break;
                }
                j++;
            }
            return str;
        }
        #endregion

        #region 截取字符串+…
        /// <summary>
        /// 截取字符串+…
        /// </summary>
        /// <param name="strInput"></param>
        /// <param name="intlen"></param>
        /// <returns></returns>
        public static string CutString(string strInput, int intlen)//截取字符串
        {
            ASCIIEncoding ascii = new ASCIIEncoding();
            int intLength = 0;
            string strString = "";
            byte[] s = ascii.GetBytes(strInput);
            for (int i = 0; i < s.Length; i++)
            {
                if ((int)s[i] == 63)
                {
                    intLength += 2;
                }
                else
                {
                    intLength += 1;
                }

                try
                {
                    strString += strInput.Substring(i, 1);
                }
                catch
                {
                    break;
                }

                if (intLength > intlen)
                {
                    break;
                }
            }
            //如果截过则加上半个省略号
            byte[] mybyte = System.Text.Encoding.Default.GetBytes(strInput);
            if (mybyte.Length > intlen)
            {
                strString += "…";
            }
            return strString;
        }
        #endregion

        #region 字符串分函数
        /// <summary>
        /// 字符串分函数
        /// </summary>
        /// <param name="strID"></param>
        /// <param name="index"></param>
        /// <param name="Separ"></param>
        /// <returns></returns>
        public string StringSplit(string strings, int index, string Separ)
        {
            string[] s = strings.Split(char.Parse(Separ));
            return s[index];
        }
#endregion

        #region 分解字符串为数组
        /// <summary>
        /// 字符串分函数
        /// </summary>
        /// <param name="str">要分解的字符串</param>
        /// <param name="splitstr">分割符,可以为string类型</param>
        /// <returns>字符数组</returns>
        public static string[] splitstr(string str, string splitstr)
        {
            if (splitstr != "")
            {
                System.Collections.ArrayList c = new System.Collections.ArrayList();
                while (true)
                {
                    int thissplitindex = str.IndexOf(splitstr);
                    if (thissplitindex >= 0)
                    {
                        c.Add(str.Substring(0, thissplitindex));
                        str = str.Substring(thissplitindex + splitstr.Length);
                    }
                    else
                    {
                        c.Add(str);
                        break;
                    }
                }
                string[] d = new string[c.Count];
                for (int i = 0; i < c.Count; i++)
                {
                    d[i] = c[i].ToString();
                }
                return d;
            }
            else
            {
                return new string[] { str };
            }
        }
        #endregion

        #region URL编码
        /// <summary>
        /// URL编码
        /// </summary>
        /// <param name="str">字符串</param>
        /// <returns></returns>
        public static string UrlEncoding(string str)
        {
            byte[] bytes = System.Text.Encoding.UTF8.GetBytes(str);
            return System.Text.Encoding.UTF8.GetString(bytes).ToString();
        }
        #endregion

        #region 获取Web.config中的配置字段值
        /// <summary>
        /// 获取全局配置参数
        /// </summary>
        /// <param name="key">键名</param>
        /// <returns>参数</returns>
        public static string GetApp(string key)
        {
            System.Configuration.AppSettingsReader appr = new System.Configuration.AppSettingsReader();
            try
            {
                string str = (string)appr.GetValue(key, typeof(string));
                if (str == null || str == "") return null;
                return str;
            }
            catch (Exception E) { }
            return null;
        }

        #endregion

        #region 根据传入的字符串是否为yes/no返回Bit
        /// <summary>
        /// 根据传入的字符串是否为yes/no返回Bit
        /// </summary>
        /// <param name="flg"></param>
        /// <returns></returns>
        public static int GetBitBool(string flg)
        {
            int str = 0;
            switch (flg.ToLower())
            {
                case "yes":
                    str = 1;
                    break;
                case"no":
                    str = 0;
                    break;
                default:
                    break;
            }
            return str;
        }
        #endregion

        #region Html编码
        /// <summary>
        /// HTML编码
        /// </summary>
        /// <param name="strInput"></param>
        /// <returns></returns>
        public static string HtmlEncode(string strInput)
        {
            string str;
            try
            {
                str = HttpContext.Current.Server.HtmlEncode(strInput);
            }
            catch
            {
                str = "error";
            }
            return str;
        }
        /// <summary>
        /// HTML解码
        /// </summary>
        /// <param name="strInput"></param>
        /// <returns></returns>
        public static string HtmlDecode(string strInput)
        {
            string str;
            try
            {
                str = HttpContext.Current.Server.HtmlDecode(strInput);
            }
            catch
            {
                str = "error";
            }
            return str;
        }
        #endregion      

 #region 检测一个字符符,是否在另一个字符中,存在,存在返回true,否则返回false
        /// <summary>
        /// 检测一个字符符,是否在另一个字符中,存在,存在返回true,否则返回false
        /// </summary>
        /// <param name="srcString">原始字符串</param>
        /// <param name="aimString">目标字符串</param>
        /// <returns></returns>
        public static bool IsEnglish(string srcString, string aimString)
        {
            bool Rev = true;
            string chr;
            if (aimString == "" || aimString == null) return false;
            for (int i = 0; i < aimString.Length; i++)
            {
                chr = aimString.Substring(i, 1);
                if (srcString.IndexOf(chr) < 0)
                {
                    return false;
                    break;
                }

            }
            return Rev;
        }
        #endregion

        #region 检测字符串中是否含有中文及中文长度
        /// <summary>
        /// 检测字符串中是否含有中文及中文长度
        /// </summary>
        /// <param name="str">要检测的字符串</param>
        /// <returns>中文字符串长度</returns>
        public static int CnStringLength(string str)
        {
            ASCIIEncoding n = new ASCIIEncoding();
            byte[] b = n.GetBytes(str);
            int l = 0;  // l 为字符串之实际长度
            for (int i = 0; i <= b.Length - 1; i++)
            {
                if (b[i] == 63)  //判断是否为汉字或全脚符号
                {
                    l++;
                }
            }
            return l;
       
        }
        #endregion  

 #region 取字符串右侧的几个字符
        /// <summary>
        /// 取字符串右侧的几个字符
        /// </summary>
        /// <param name="str">字符串</param>
        /// <param name="length">右侧的几个字符</param>
        /// <returns></returns>
        public static  string GetStrRight(string str, int length)
        {
            string Rev = "";

            if (str.Length < length)
            {
                Rev = str;

            }
            else
            {
                Rev = str.Substring(str.Length - length, length);
            }
            return Rev;


        }
        #endregion

        #region 替换右侧的字符串

        /// <summary>
        /// 替换右侧的字符串
        /// </summary>
        /// <param name="str">字符串</param>
        /// <param name="strsrc">右侧的字符串</param>
        /// <param name="straim">要替换为的字符串</param>
        /// <returns></returns>
        public static  string RepStrRight(string str, string strsrc, string straim)
        {

            string Rev = "";
            if (GetStrRight(str, strsrc.Length) != strsrc)
            {
                Rev = str;
            }
            else
            {
                Rev = str.Substring(0, str.Length - strsrc.Length).ToString() + straim.ToString();
            }
            return Rev;
        }
        #endregion
    }

}

posted @ 2007-05-05 23:39  Danny Chen  阅读(736)  评论(0编辑  收藏  举报