C#函数实现的小功能

C#中Split分隔字符串的应用
1、用字符串分隔:
using System.Text.RegularExpressions;

 

string str="aaajsbbbjsccc";

string[] sArray=Regex.Split(str,"js",RegexOptions.IgnoreCase);

foreach (string i in sArray) Response.Write(i.ToString() + "<br>");

 

输出结果:
aaa
bbb
ccc
 

2、用多个字符来分隔:

string str="aaajbbbscccjdddseee";

string[] sArray=str.Split(new char[2]{'j','s'});

foreach(string i in sArray) Response.Write(i.ToString() + "<br>");

 

输出结果:
aaa
bbb
ccc
ddd
eee
 

3、用单个字符来分隔:

string str="aaajbbbjccc";

string[] sArray=str.Split('j');

foreach(string i in sArray) Response.Write(i.ToString() + "<br>");

输出结果:
aaa
bbb
ccc


==================
子窗体返回主窗体

 /**<summary>
 ///名称:redirect
 ///功能:子窗体返回主窗体
 ///参数:url
 ///返回值:空
 ///</summary>
 public void redirect(string url,Page page)
 {
  if ( Session["IfDefault"]!=(object)"Default")
  {    
   page.RegisterStartupScript("","<script>window.top.document.location.href='"+url+"';</script>");
  }
 }

 判断是否为数字

 /** <summary>
 /// 名称:IsNumberic
 /// 功能:判断输入的是否是数字
 /// 参数:string oText:源文本
 /// 返回值: bool true:是 false:否
 /// </summary>
 
 public bool IsNumberic(string oText)
 {
  try
  {
   int var1=Convert.ToInt32 (oText);
   return true;
  }
  catch
  {
   return false;
  }
 }

 获得字符串实际长度(包括中文字符)

 //获得字符串oString的实际长度
 public int StringLength(string oString)
 {
  byte[] strArray=System.Text .Encoding.Default .GetBytes (oString);
  int res=strArray.Length ;
  return res;
 }

 将回车转换为TAB

 //当在有keydown事件的控件上敲回车时,变为tab
 public void Tab(System.Web .UI.WebControls .WebControl webcontrol)
 {
  webcontrol.Attributes .Add ("onkeydown", "if(event.keyCode==13) event.keyCode=9");
 }

 datagrid分页中如果删除时出现超出索引

 public void jumppage(System.Web.UI.WebControls.DataGrid dg)
 {
  int int_PageLess; //定义页面跳转的页数
  //如果当前页是最后一页
  if(dg.CurrentPageIndex == dg.PageCount-1)
  {
   //如果就只有一页
   if(dg.CurrentPageIndex == 0)
   {
    //删除后页面停在当前页
    dg.CurrentPageIndex = dg.PageCount-1;   
   }
   else
   {
    //如果最后一页只有一条记录
    if((dg.Items.Count % dg.PageSize == 1) || dg.PageSize == 1)
    {
     //把最后一页最后一条记录删除后,页面应跳转到前一页
     int_PageLess = 2;
    }
    else      //如果最后一页的记录数大于1,那么在最后一页删除记录后仍然停在当前页
    {
     int_PageLess = 1;
    }
    dg.CurrentPageIndex = dg.PageCount - int_PageLess;
   }
  }
 }


*/

//Base64编码
public string EncodeBase64(string code_type,string code)
  {
   string encode = "";
   byte[] bytes = Encoding.GetEncoding(code_type).GetBytes(code);
   try
   {
    encode = Convert.ToBase64String(bytes);
   }
   catch
   {
    encode = code;
   }
   return encode;
  }

 

 c#的一些字符串的经验
//获得汉字的区位码
byte[] array = new byte[2];
array = System.Text.Encoding.Default.GetBytes("啊");

int i1 = (short)(array[0] - '/0');
int i2 = (short)(array[1] - '/0');

//unicode解码方式下的汉字码
array = System.Text.Encoding.Unicode.GetBytes("啊");
i1 = (short)(array[0] - '/0');
i2 = (short)(array[1] - '/0');

//unicode反解码为汉字
string str = "4a55";
string s1 = str.Substring(0,2);
string s2 = str.Substring(2,2);

int t1 = Convert.ToInt32(s1,16);
int t2 = Convert.ToInt32(s2,16);

array[0] = (byte)t1;
array[1] = (byte)t2;

string s = System.Text.Encoding.Unicode.GetString(array);

//default方式反解码为汉字
array[0] = (byte)196;
array[1] = (byte)207;
s = System.Text.Encoding.Default.GetString(array);

//取字符串长度
s = "iam方枪枪";
int len = s.Length;//will output as 6
byte[] sarr = System.Text.Encoding.Default.GetBytes(s);
len = sarr.Length;//will output as 3+3*2=9

//字符串相加
System.Text.StringBuilder sb = new System.Text.StringBuilder("");
sb.Append("i ");
sb.Append("am ");
sb.Append("方枪枪");


string fox;
fox.ToLower()转化成小写字母
fox.ToUpper()转化成大写字母
fox.Trim()删除前后空格
fox.Trim(trimChars)删除其它字符
fox.TrimStart()删除前空格
fox.TrimEnd()删除后空格
fox.PadLeft(10)增加左边空格,使字串达到某长度。
fox.PadRight(10)增加右边空格,使字串达到某长度。
fox.PadX(10,'-')增加其它字符,使字串达到某长度。X指:Left/Right
fox.Split(' ')将字串分解成数组

//格式化
string sf=string.Format("{0}年{1}月{2}日 {3}时{4}分",temp.Year,temp.Month,temp.Day,currTime.TruantTime.Hour,currTime.TruantTime.Minute);

//一些正则表达式
Internet地址表达式
http://([/w-]+/.)+[/w-]+(/[/w- ./?%&=]*)?
Email地址表达式
/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*
邮编
/d{6}
电话号码
(/(/d{3}/)|/d{3}-)?/d{8}

//分隔字符串
string total="aaa,bbb,ccc,dddd";
string[]strArray;
char[]charArray=new char[]{','};
strArray=total.Split(charArray);

//日期
DateTime t1 = new DateTime(2002,5,30);
DateTime t2 = new DateTime(2002,5,23);
TimeSpan diff=t1-t2;
MessageBox.Show(diff.Days.ToString(

System.DateTime.Now.ToString()

DateTime d1=Convert.ToDateTime("2003-01-01 18:20:01");
string s=d1.ToString("yyyy-MM-dd HH:mm:ss");

//目录
Environment.CurrentDirectory
Application.StartupPath 

//Base64解码
public string DecodeBase64(string code_type,string code)
  {
   string decode = "";
   byte[] bytes = Convert.FromBase64String(code);
   try
   {
    decode = Encoding.GetEncoding(code_type).GetString(bytes);
   }
   catch
   {
    decode = code;
   }
   return decode;
  }


//将querystirng转换成url:
public static string GetRedirectUrl(NameValueCollection queryString)
        {
            string redirectUrl = string.Empty;
            int counter = 0;
            foreach(string key in queryString.Keys)
            {               
                redirectUrl += string.Format("{0}{1}={2}", (counter>0)?"&":"", key, queryString[key]);
                counter++;
            }
            return redirectUrl;
        }


    }
}
一. 显示消息对话框类

   做项目时总免不了要弹出对话框,或提示用户,或做用户确认。像WinForm下的MessageBox一样很方便,但web下是不是也可以实现呢,答案是肯定的,我简单总结了一下并封装到类,在项目里像WinForm的MessageBox那样直接调用就可以,也可以把它编译成dll作为组件直接调用,并且它也没有弹出对话框时的大白屏现象:)。

     /** <summary>

     /// 显示消息提示对话框。


     /// 2005.10.1

     /// </summary>

     public class MessageBox

     {       

         private  MessageBox()

         {            

         }

         /** <summary>

         /// 显示消息提示对话框

         /// </summary>

         /// <param name=page>当前页面指针,一般为this</param>

         /// <param name=msg>提示信息</param>

         public static void  Show(System.Web.UI.Page page,string msg)

         {

              page.RegisterStartupScript(message,<script language='javascript' defer>alert('+msg.ToString()+');</script>);

         }

         /** <summary>

         /// 控件点击消息确认提示框

         /// </summary>

         /// <param name=page>当前页面指针,一般为this</param>

         /// <param name=msg>提示信息</param>

         public static void  ShowConfirm(System.Web.UI.WebControls.WebControl Control,string msg)

         {

              //Control.Attributes.Add(onClick,if (!window.confirm('+msg+')){return false;});

              Control.Attributes.Add(onclick, return confirm(' + msg + ');) ;

         }

         /** <summary>

         /// 显示消息提示对话框,并进行页面跳转

         /// </summary>

         /// <param name=page>当前页面指针,一般为this</param>

         /// <param name=msg>提示信息</param>

         /// <param name=url>跳转的目标URL</param>

         public static void ShowAndRedirect(System.Web.UI.Page page,string msg,string url)

         {

              StringBuilder Builder=new StringBuilder();

              Builder.Append(<script language='javascript' defer>);

              Builder.AppendFormat(alert('{0}');,msg);

              Builder.AppendFormat(top.location.href='{0}',url);

              Builder.Append(</script>);

              page.RegisterStartupScript(message,Builder.ToString());


 
         }

         /** <summary>

         /// 输出自定义脚本信息

         /// </summary>

         /// <param name=page>当前页面指针,一般为this</param>

         /// <param name=script>输出脚本</param>

         public static void ResponseScript(System.Web.UI.Page page,string script)

         {

              page.RegisterStartupScript(message,<script language='javascript' defer>+script+</script>);

         }

     }


二.页面数据验证类

做项目,特别做MIS,更避免不了有用户输入数据需要做有效性验证,这里我总结封装了一个页面数据校验的工具类,用起来也是很方便。

     /** <summary>

     /// 页面数据校验类

     /// 李天平

     /// 2004.8

     /// </summary>

     public class PageValidate

     {

         private static Regex RegNumber = new Regex(^[0-9]+$);

         private static Regex RegNumberSign = new Regex(^[+-]?[0-9]+$);

         private static Regex RegDecimal = new Regex(^[0-9]+[.]?[0-9]+$);

         private static Regex RegDecimalSign = new Regex(^[+-]?[0-9]+[.]?[0-9]+$); //等价于^[+-]?/d+[.]?/d+$

         private static Regex RegEmail = new Regex(^[//w-]+@[//w-]+//.(com|net|org|edu|mil|tv|biz|info)$);//w 英文字母或数字的字符串,和 [a-zA-Z0-9] 语法一样

         private static Regex RegCHZN = new Regex([/u4e00-/u9fa5]);


 
         public PageValidate()

         {

         }

         数字字符串检查#region 数字字符串检查              

         /** <summary>

         /// 检查Request查询字符串的键值,是否是数字,最大长度限制

         /// </summary>

         /// <param name=req>Request</param>

         /// <param name=inputKey>Request的键值</param>

         /// <param name=maxLen>最大长度</param>

         /// <returns>返回Request查询字符串</returns>

         public static string FetchInputDigit(HttpRequest req, string inputKey, int maxLen)

         {

              string retVal = string.Empty;

              if(inputKey != null && inputKey != string.Empty)

              {

                   retVal = req.QueryString[inputKey];

                   if(null == retVal)

                       retVal = req.Form[inputKey];

                   if(null != retVal)

                   {

                       retVal = SqlText(retVal, maxLen);

                       if(!IsNumber(retVal))

                            retVal = string.Empty;

                   }

              }

              if(retVal == null)

                   retVal = string.Empty;

              return retVal;

         }       

         /** <summary>

         /// 是否数字字符串

         /// </summary>

         /// <param name=inputData>输入字符串</param>

         /// <returns></returns>

         public static bool IsNumber(string inputData)

         {

              Match m = RegNumber.Match(inputData);

              return m.Success;

         }       

         /** <summary>

         /// 是否数字字符串可带正负号

         /// </summary>

         /// <param name=inputData>输入字符串</param>

         /// <returns></returns>

         public static bool IsNumberSign(string inputData)

         {

              Match m = RegNumberSign.Match(inputData);

              return m.Success;

         }       

         /** <summary>

         /// 是否是浮点数

         /// </summary>

         /// <param name=inputData>输入字符串</param>

         /// <returns></returns>

         public static bool IsDecimal(string inputData)

         {

              Match m = RegDecimal.Match(inputData);

              return m.Success;

         }       

         /** <summary>

         /// 是否是浮点数可带正负号

         /// </summary>

         /// <param name=inputData>输入字符串</param>

         /// <returns></returns>

         public static bool IsDecimalSign(string inputData)

         {

              Match m = RegDecimalSign.Match(inputData);

              return m.Success;

         }

         #endregion


 
         中文检测#region 中文检测

         /** <summary>

         /// 检测是否有中文字符

         /// </summary>

         /// <param name=inputData></param>

         /// <returns></returns>

         public static bool IsHasCHZN(string inputData)

         {

              Match m = RegCHZN.Match(inputData);

              return m.Success;

         }

         #endregion


 
         邮件地址#region 邮件地址

         /** <summary>

         /// 是否是浮点数可带正负号

         /// </summary>

         /// <param name=inputData>输入字符串</param>

         /// <returns></returns>

         public static bool IsEmail(string inputData)

         {

              Match m = RegEmail.Match(inputData);

              return m.Success;

         }

         #endregion


 
         其他#region 其他

         /** <summary>

         /// 检查字符串最大长度,返回指定长度的串

         /// </summary>

         /// <param name=sqlInput>输入字符串</param>

         /// <param name=maxLength>最大长度</param>

         /// <returns></returns>         

         public static string SqlText(string sqlInput, int maxLength)

         {            

              if(sqlInput != null && sqlInput != string.Empty)

              {

                   sqlInput = sqlInput.Trim();                            

                   if(sqlInput.Length > maxLength)//按最大长度截取字符串

                       sqlInput = sqlInput.Substring(0, maxLength);

              }

              return sqlInput;

         }       

         /** <summary>

         /// 字符串编码

         /// </summary>

         /// <param name=inputData></param>

         /// <returns></returns>

         public static string HtmlEncode(string inputData)

         {

              return HttpUtility.HtmlEncode(inputData);

         }

         /** <summary>

         /// 设置Label显示Encode的字符串

         /// </summary>

         /// <param name=lbl></param>

         /// <param name=txtInput></param>

         public static void SetLabel(Label lbl, string txtInput)

         {

              lbl.Text = HtmlEncode(txtInput);

         }

         public static void SetLabel(Label lbl, object inputObj)

         {

              SetLabel(lbl, inputObj.ToString());

         }       


 
         #endregion

}
在Textbox的輸入中﹐我們常常需要控制輸入的類型﹐比如說只能輸入數字﹐當然實現的方法很多﹐我總結了一下我做過的一些項目﹐我常會使用以下這三種﹕
1﹑使用TryCatch
        private static bool IsNumeric(string itemValue,int intFLag)
        {
            try
            {
                int i = Convert.ToInt32(itemValue);
                return true;
            }
            catch
            {
                return false;
            }
        }2﹑使用正則表達式
using System.Text.RegularExpressions;
       
         private static bool IsNumeric(string itemValue)
        {
            return (IsRegEx("^(-?[0-9]*[.]*[0-9]{0,3})$", itemValue));
        }

        private static bool IsRegEx(string regExValue, string itemValue)
        {
            try
            {
                Regex regex = new System.Text.RegularExpressions.Regex(regExValue);
                if (regex.IsMatch(itemValue)) return true;
                else                          return false;
            }
            catch (Exception )
            {
                return false;
            }
            finally
            {
            }
        }

3﹑判斷輸入的keyCode
        public static bool IsNumeric(System.Windows.Forms.KeyPressEventArgs e)
        {
            if ((e.KeyChar  >= (char)48 && e.KeyChar<=(char)57) ||
                 e.KeyChar ==(char)8 || e.KeyChar ==(char)45 || e.KeyChar ==(char)47)
            {
            }
            else
            {
    e.Handled=true; 
            }
            return true;
        } 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值