C#函数实现的小功能
生活随笔
收集整理的這篇文章主要介紹了
C#函数实现的小功能
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
C#中Split分隔字符串的應(yīng)用?
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>");
輸出結(jié)果:
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>");?
輸出結(jié)果:
aaa
bbb
ccc
ddd
eee
?
3、用單個字符來分隔:
string?str="aaajbbbjccc";
string[]?sArray=str.Split('j');
foreach(string?i?in?sArray)?Response.Write(i.ToString()?+?"<br>");
輸出結(jié)果:
aaa
bbb
ccc
==================
子窗體返回主窗體?
?/**////<summary>?
?///名稱:redirect?
?///功能:子窗體返回主窗體?
?///參數(shù):url?
?///返回值:空?
?///</summary>?
?public?void?redirect(string?url,Page?page)?
?{?
??if?(?Session["IfDefault"]!=(object)"Default")?
??{?????
???page.RegisterStartupScript("","<script>window.top.document.location.href='"+url+"';</script>");?
??}?
?}?
?判斷是否為數(shù)字?
?/**////?<summary>?
?///?名稱:IsNumberic?
?///?功能:判斷輸入的是否是數(shù)字?
?///?參數(shù):string?oText:源文本?
?///?返回值: bool?true:是 false:否?
?///?</summary>?
??
?public?bool?IsNumberic(string?oText)?
?{?
??try?
??{?
???int?var1=Convert.ToInt32?(oText);?
???return?true;?
??}?
??catch?
??{?
???return?false;?
??}?
?}?
?獲得字符串實(shí)際長度(包括中文字符)?
?//獲得字符串oString的實(shí)際長度?
?public?int?StringLength(string?oString)?
?{?
??byte[]?strArray=System.Text?.Encoding.Default?.GetBytes?(oString);?
??int?res=strArray.Length?;?
??return?res;?
?}?
?將回車轉(zhuǎn)換為TAB?
?//當(dāng)在有keydown事件的控件上敲回車時,變?yōu)閠ab?
?public?void?Tab(System.Web?.UI.WebControls?.WebControl?webcontrol)?
?{?
??webcontrol.Attributes?.Add?("onkeydown",?"if(event.keyCode==13)?event.keyCode=9");?
?}?
?datagrid分頁中如果刪除時出現(xiàn)超出索引?
?public?void?jumppage(System.Web.UI.WebControls.DataGrid?dg)?
?{?
??int?int_PageLess;?//定義頁面跳轉(zhuǎn)的頁數(shù)?
??//如果當(dāng)前頁是最后一頁?
??if(dg.CurrentPageIndex?==?dg.PageCount-1)?
??{?
???//如果就只有一頁?
???if(dg.CurrentPageIndex?==?0)?
???{?
????//刪除后頁面停在當(dāng)前頁?
????dg.CurrentPageIndex?=?dg.PageCount-1;????
???}?
???else?
???{?
????//如果最后一頁只有一條記錄?
????if((dg.Items.Count?%?dg.PageSize?==?1)?||?dg.PageSize?==?1)?
????{?
?????//把最后一頁最后一條記錄刪除后,頁面應(yīng)跳轉(zhuǎn)到前一頁?
?????int_PageLess?=?2;?
????}?
????else??????//如果最后一頁的記錄數(shù)大于1,那么在最后一頁刪除記錄后仍然停在當(dāng)前頁?
????{?
?????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#的一些字符串的經(jīng)驗(yàn)
//獲得漢字的區(qū)位碼?
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()轉(zhuǎn)化成小寫字母?
fox.ToUpper()轉(zhuǎn)化成大寫字母?
fox.Trim()刪除前后空格?
fox.Trim(trimChars)刪除其它字符?
fox.TrimStart()刪除前空格?
fox.TrimEnd()刪除后空格?
fox.PadLeft(10)增加左邊空格,使字串達(dá)到某長度。?
fox.PadRight(10)增加右邊空格,使字串達(dá)到某長度。?
fox.PadX(10,'-')增加其它字符,使字串達(dá)到某長度。X指:Left/Right?
fox.Split('?')將字串分解成數(shù)組?
//格式化?
string?sf=string.Format("{0}年{1}月{2}日?{3}時{4}分",temp.Year,temp.Month,temp.Day,currTime.TruantTime.Hour,currTime.TruantTime.Minute);?
//一些正則表達(dá)式?
Internet地址表達(dá)式?
http://([\w-]+\.)+[\w-]+(/[\w-?./?%&=]*)??
Email地址表達(dá)式?
\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轉(zhuǎn)換成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;
????????}
????}
}
一.?顯示消息對話框類?
???做項(xiàng)目時總免不了要彈出對話框,或提示用戶,或做用戶確認(rèn)。像WinForm下的MessageBox一樣很方便,但web下是不是也可以實(shí)現(xiàn)呢,答案是肯定的,我簡單總結(jié)了一下并封裝到類,在項(xiàng)目里像WinForm的MessageBox那樣直接調(diào)用就可以,也可以把它編譯成dll作為組件直接調(diào)用,并且它也沒有彈出對話框時的大白屏現(xiàn)象:)。?
?????/**////?<summary>?
?????///?顯示消息提示對話框。?
?????///?2005.10.1?
?????///?</summary>?
?????public?class?MessageBox?
?????{????????
?????????private??MessageBox()?
?????????{?????????????
?????????}?
?????????/**////?<summary>?
?????????///?顯示消息提示對話框?
?????????///?</summary>?
?????????///?<param?name=page>當(dāng)前頁面指針,一般為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>?
?????????///?控件點(diǎn)擊消息確認(rèn)提示框?
?????????///?</summary>?
?????????///?<param?name=page>當(dāng)前頁面指針,一般為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>?
?????????///?顯示消息提示對話框,并進(jìn)行頁面跳轉(zhuǎn)?
?????????///?</summary>?
?????????///?<param?name=page>當(dāng)前頁面指針,一般為this</param>?
?????????///?<param?name=msg>提示信息</param>?
?????????///?<param?name=url>跳轉(zhuǎn)的目標(biāo)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>當(dāng)前頁面指針,一般為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>);?
?????????}?
?????}
二.頁面數(shù)據(jù)驗(yàn)證類
做項(xiàng)目,特別做MIS,更避免不了有用戶輸入數(shù)據(jù)需要做有效性驗(yàn)證,這里我總結(jié)封裝了一個頁面數(shù)據(jù)校驗(yàn)的工具類,用起來也是很方便。?
?????/**////?<summary>?
?????///?頁面數(shù)據(jù)校驗(yàn)類?
?????///?李天平?
?????///?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?英文字母或數(shù)字的字符串,和?[a-zA-Z0-9]?語法一樣?
?????????private?static?Regex?RegCHZN?=?new?Regex([\u4e00-\u9fa5]);?
?
?????????public?PageValidate()?
?????????{?
?????????}?
?????????數(shù)字字符串檢查#region?數(shù)字字符串檢查???????????????
?????????/**////?<summary>?
?????????///?檢查Request查詢字符串的鍵值,是否是數(shù)字,最大長度限制?
?????????///?</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>?
?????????///?是否數(shù)字字符串?
?????????///?</summary>?
?????????///?<param?name=inputData>輸入字符串</param>?
?????????///?<returns></returns>?
?????????public?static?bool?IsNumber(string?inputData)?
?????????{?
??????????????Match?m?=?RegNumber.Match(inputData);?
??????????????return?m.Success;?
?????????}????????
?????????/**////?<summary>?
?????????///?是否數(shù)字字符串可帶正負(fù)號?
?????????///?</summary>?
?????????///?<param?name=inputData>輸入字符串</param>?
?????????///?<returns></returns>?
?????????public?static?bool?IsNumberSign(string?inputData)?
?????????{?
??????????????Match?m?=?RegNumberSign.Match(inputData);?
??????????????return?m.Success;?
?????????}????????
?????????/**////?<summary>?
?????????///?是否是浮點(diǎn)數(shù)?
?????????///?</summary>?
?????????///?<param?name=inputData>輸入字符串</param>?
?????????///?<returns></returns>?
?????????public?static?bool?IsDecimal(string?inputData)?
?????????{?
??????????????Match?m?=?RegDecimal.Match(inputData);?
??????????????return?m.Success;?
?????????}????????
?????????/**////?<summary>?
?????????///?是否是浮點(diǎn)數(shù)可帶正負(fù)號?
?????????///?</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>?
?????????///?是否是浮點(diǎn)數(shù)可帶正負(fù)號?
?????????///?</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>?
?????????///?設(shè)置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的輸入中﹐我們常常需要控制輸入的類型﹐比如說只能輸入數(shù)字﹐當(dāng)然實(shí)現(xiàn)的方法很多﹐我總結(jié)了一下我做過的一些項(xiàng)目﹐我常會使用以下這三種﹕
1﹑使用TryCatch
????????private?static?bool?IsNumeric(string?itemValue,int?intFLag)
????????{
????????????try
????????????{
????????????????int?i?=?Convert.ToInt32(itemValue);
????????????????return?true;
????????????}
????????????catch
????????????{
????????????????return?false;
????????????}
????????}2﹑使用正則表達(dá)式
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;
????????} 《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀
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>");
輸出結(jié)果:
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>");?
輸出結(jié)果:
aaa
bbb
ccc
ddd
eee
?
3、用單個字符來分隔:
string?str="aaajbbbjccc";
string[]?sArray=str.Split('j');
foreach(string?i?in?sArray)?Response.Write(i.ToString()?+?"<br>");
輸出結(jié)果:
aaa
bbb
ccc
==================
子窗體返回主窗體?
?/**////<summary>?
?///名稱:redirect?
?///功能:子窗體返回主窗體?
?///參數(shù):url?
?///返回值:空?
?///</summary>?
?public?void?redirect(string?url,Page?page)?
?{?
??if?(?Session["IfDefault"]!=(object)"Default")?
??{?????
???page.RegisterStartupScript("","<script>window.top.document.location.href='"+url+"';</script>");?
??}?
?}?
?判斷是否為數(shù)字?
?/**////?<summary>?
?///?名稱:IsNumberic?
?///?功能:判斷輸入的是否是數(shù)字?
?///?參數(shù):string?oText:源文本?
?///?返回值: bool?true:是 false:否?
?///?</summary>?
??
?public?bool?IsNumberic(string?oText)?
?{?
??try?
??{?
???int?var1=Convert.ToInt32?(oText);?
???return?true;?
??}?
??catch?
??{?
???return?false;?
??}?
?}?
?獲得字符串實(shí)際長度(包括中文字符)?
?//獲得字符串oString的實(shí)際長度?
?public?int?StringLength(string?oString)?
?{?
??byte[]?strArray=System.Text?.Encoding.Default?.GetBytes?(oString);?
??int?res=strArray.Length?;?
??return?res;?
?}?
?將回車轉(zhuǎn)換為TAB?
?//當(dāng)在有keydown事件的控件上敲回車時,變?yōu)閠ab?
?public?void?Tab(System.Web?.UI.WebControls?.WebControl?webcontrol)?
?{?
??webcontrol.Attributes?.Add?("onkeydown",?"if(event.keyCode==13)?event.keyCode=9");?
?}?
?datagrid分頁中如果刪除時出現(xiàn)超出索引?
?public?void?jumppage(System.Web.UI.WebControls.DataGrid?dg)?
?{?
??int?int_PageLess;?//定義頁面跳轉(zhuǎn)的頁數(shù)?
??//如果當(dāng)前頁是最后一頁?
??if(dg.CurrentPageIndex?==?dg.PageCount-1)?
??{?
???//如果就只有一頁?
???if(dg.CurrentPageIndex?==?0)?
???{?
????//刪除后頁面停在當(dāng)前頁?
????dg.CurrentPageIndex?=?dg.PageCount-1;????
???}?
???else?
???{?
????//如果最后一頁只有一條記錄?
????if((dg.Items.Count?%?dg.PageSize?==?1)?||?dg.PageSize?==?1)?
????{?
?????//把最后一頁最后一條記錄刪除后,頁面應(yīng)跳轉(zhuǎn)到前一頁?
?????int_PageLess?=?2;?
????}?
????else??????//如果最后一頁的記錄數(shù)大于1,那么在最后一頁刪除記錄后仍然停在當(dāng)前頁?
????{?
?????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#的一些字符串的經(jīng)驗(yàn)
//獲得漢字的區(qū)位碼?
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()轉(zhuǎn)化成小寫字母?
fox.ToUpper()轉(zhuǎn)化成大寫字母?
fox.Trim()刪除前后空格?
fox.Trim(trimChars)刪除其它字符?
fox.TrimStart()刪除前空格?
fox.TrimEnd()刪除后空格?
fox.PadLeft(10)增加左邊空格,使字串達(dá)到某長度。?
fox.PadRight(10)增加右邊空格,使字串達(dá)到某長度。?
fox.PadX(10,'-')增加其它字符,使字串達(dá)到某長度。X指:Left/Right?
fox.Split('?')將字串分解成數(shù)組?
//格式化?
string?sf=string.Format("{0}年{1}月{2}日?{3}時{4}分",temp.Year,temp.Month,temp.Day,currTime.TruantTime.Hour,currTime.TruantTime.Minute);?
//一些正則表達(dá)式?
Internet地址表達(dá)式?
http://([\w-]+\.)+[\w-]+(/[\w-?./?%&=]*)??
Email地址表達(dá)式?
\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轉(zhuǎn)換成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;
????????}
????}
}
一.?顯示消息對話框類?
???做項(xiàng)目時總免不了要彈出對話框,或提示用戶,或做用戶確認(rèn)。像WinForm下的MessageBox一樣很方便,但web下是不是也可以實(shí)現(xiàn)呢,答案是肯定的,我簡單總結(jié)了一下并封裝到類,在項(xiàng)目里像WinForm的MessageBox那樣直接調(diào)用就可以,也可以把它編譯成dll作為組件直接調(diào)用,并且它也沒有彈出對話框時的大白屏現(xiàn)象:)。?
?????/**////?<summary>?
?????///?顯示消息提示對話框。?
?????///?2005.10.1?
?????///?</summary>?
?????public?class?MessageBox?
?????{????????
?????????private??MessageBox()?
?????????{?????????????
?????????}?
?????????/**////?<summary>?
?????????///?顯示消息提示對話框?
?????????///?</summary>?
?????????///?<param?name=page>當(dāng)前頁面指針,一般為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>?
?????????///?控件點(diǎn)擊消息確認(rèn)提示框?
?????????///?</summary>?
?????????///?<param?name=page>當(dāng)前頁面指針,一般為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>?
?????????///?顯示消息提示對話框,并進(jìn)行頁面跳轉(zhuǎn)?
?????????///?</summary>?
?????????///?<param?name=page>當(dāng)前頁面指針,一般為this</param>?
?????????///?<param?name=msg>提示信息</param>?
?????????///?<param?name=url>跳轉(zhuǎn)的目標(biāo)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>當(dāng)前頁面指針,一般為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>);?
?????????}?
?????}
二.頁面數(shù)據(jù)驗(yàn)證類
做項(xiàng)目,特別做MIS,更避免不了有用戶輸入數(shù)據(jù)需要做有效性驗(yàn)證,這里我總結(jié)封裝了一個頁面數(shù)據(jù)校驗(yàn)的工具類,用起來也是很方便。?
?????/**////?<summary>?
?????///?頁面數(shù)據(jù)校驗(yàn)類?
?????///?李天平?
?????///?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?英文字母或數(shù)字的字符串,和?[a-zA-Z0-9]?語法一樣?
?????????private?static?Regex?RegCHZN?=?new?Regex([\u4e00-\u9fa5]);?
?
?????????public?PageValidate()?
?????????{?
?????????}?
?????????數(shù)字字符串檢查#region?數(shù)字字符串檢查???????????????
?????????/**////?<summary>?
?????????///?檢查Request查詢字符串的鍵值,是否是數(shù)字,最大長度限制?
?????????///?</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>?
?????????///?是否數(shù)字字符串?
?????????///?</summary>?
?????????///?<param?name=inputData>輸入字符串</param>?
?????????///?<returns></returns>?
?????????public?static?bool?IsNumber(string?inputData)?
?????????{?
??????????????Match?m?=?RegNumber.Match(inputData);?
??????????????return?m.Success;?
?????????}????????
?????????/**////?<summary>?
?????????///?是否數(shù)字字符串可帶正負(fù)號?
?????????///?</summary>?
?????????///?<param?name=inputData>輸入字符串</param>?
?????????///?<returns></returns>?
?????????public?static?bool?IsNumberSign(string?inputData)?
?????????{?
??????????????Match?m?=?RegNumberSign.Match(inputData);?
??????????????return?m.Success;?
?????????}????????
?????????/**////?<summary>?
?????????///?是否是浮點(diǎn)數(shù)?
?????????///?</summary>?
?????????///?<param?name=inputData>輸入字符串</param>?
?????????///?<returns></returns>?
?????????public?static?bool?IsDecimal(string?inputData)?
?????????{?
??????????????Match?m?=?RegDecimal.Match(inputData);?
??????????????return?m.Success;?
?????????}????????
?????????/**////?<summary>?
?????????///?是否是浮點(diǎn)數(shù)可帶正負(fù)號?
?????????///?</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>?
?????????///?是否是浮點(diǎn)數(shù)可帶正負(fù)號?
?????????///?</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>?
?????????///?設(shè)置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的輸入中﹐我們常常需要控制輸入的類型﹐比如說只能輸入數(shù)字﹐當(dāng)然實(shí)現(xiàn)的方法很多﹐我總結(jié)了一下我做過的一些項(xiàng)目﹐我常會使用以下這三種﹕
1﹑使用TryCatch
????????private?static?bool?IsNumeric(string?itemValue,int?intFLag)
????????{
????????????try
????????????{
????????????????int?i?=?Convert.ToInt32(itemValue);
????????????????return?true;
????????????}
????????????catch
????????????{
????????????????return?false;
????????????}
????????}2﹑使用正則表達(dá)式
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;
????????} 《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀
總結(jié)
以上是生活随笔為你收集整理的C#函数实现的小功能的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 今天浏览新闻的时候,发现一张图片特别有感
- 下一篇: Google的成果回报型广告