Asp.Net类型转换类(通用类)代码分享
废话不多说了,直接给大家贴代码了,具体代码如下所述:
///<summary> ///类型转换类 ///处理数据库获取字段为空的情况 ///</summary> publicstaticclassDBConvert { #region------------------ToInt32类型转换------------------ ///<summary> ///读取数据库中字符串并转换成Int32 ///为空时返回0 ///</summary> ///<paramname="obj">object类型的值</param> ///<returns>Int32类型</returns> publicstaticintToInt32(objectobj) { intresult=0; if(IsInt(Convert.ToString(obj))) { result=Convert.ToInt32(obj); } elseif(obj!=null&&objisEnum)//处理非null值类型时(或者枚举) { result=((IConvertible)obj).ToInt32(null); } returnresult; } ///<summary> ///读取数据库中字符串并转换成Int32 ///为空时返回0 ///</summary> ///<paramname="str">string类型的值</param> ///<returns>Int32类型</returns> publicstaticintToInt32(stringstr) { intresult=0; if(IsInt(str)) { result=Convert.ToInt32(str); } returnresult; } ///<summary> ///判断一个字符串是否属于Int类型 ///如果是的返回true,如果不是返回false ///</summary> ///<paramname="str">string类型的值</param> ///<returns>true:是Int的字符串(即可以转换成Int类型),false:不是Int类型的字符串</returns> publicstaticboolIsInt(stringstr) { boolresult=false; if(str!=""&&str!=null) { Regexreg=newRegex("^[0-9]*$"); if(reg.IsMatch(str)) { result=true; } } returnresult; } #endregion #region------------------ToString类型转换------------------ ///<summary> ///读取数据库中字符串并转换成string ///</summary> ///<paramname="obj">object类型的值</param> ///<returns>string类型</returns> publicstaticstringToString(objectobj) { stringresult=""; if(obj!=null) { result=Convert.ToString(obj); } returnresult; } #endregion #region------------------ToDouble类型转换------------------ ///<summary> ///判断一个字符串是否属于Double类型(包括负浮点型) ///如果是的返回true,如果不是返回false ///</summary> ///<paramname="str">string类型的值</param> ///<returns>true:是Double的字符串(即可以转换成Double类型),false:不是Double类型的字符串</returns> publicstaticboolIsDouble(stringstr) { boolresult=false; if(str!=""&&str!=null) { Regexreg=newRegex(@"^(-?\d+)(\.\d+)?$"); if(reg.IsMatch(str)) { result=true; } } returnresult; } ///<summary> ///读取数据库中字符串并转换成Int32 ///为空时返回0 ///</summary> ///<paramname="obj">object类型的值</param> ///<returns>Int32类型</returns> publicstaticdoubleToDouble(objectobj) { doubleresult=0.0; if(IsDouble(Convert.ToString(obj))) { result=Convert.ToDouble(obj); } elseif(obj!=null&&objisEnum)//处理枚举 { result=((IConvertible)obj).ToDouble(null); } returnresult; } ///<summary> ///读取数据库中字符串并转换成Int32 ///为空时返回0 ///</summary> ///<paramname="str">string类型的值</param> ///<returns>Int32类型</returns> publicstaticdoubleToDouble(stringstr) { doubleresult=0.0; if(IsDouble(str)) { result=Convert.ToDouble(str); } returnresult; } #endregion #region------------------ToDateTime类型转换------------------ ///<summary> ///判断时间格式是否是时间类型 ///如23:10 ///</summary> ///<paramname="str">要判断的字符串</param> ///<returns>true:是时间类型的字符串(即可以转换成时间类型),false:不是时间类型的字符串</returns> publicstaticboolisDateTime(stringstr) { boolresult=false; if(str!=""&&str!=null) { Regexreg=newRegex("(([01]\\d)|(2[0-3])):[0-5]\\d"); if(reg.IsMatch(str)) { result=true; } } returnresult; } #endregion } } //"^\d+(\.\d+)?$"//非负浮点数(正浮点数+0) //"^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$"//正浮点数 //"^((-\d+(\.\d+)?)|(0+(\.0+)?))$"//非正浮点数(负浮点数+0) //"^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$"//负浮点数 //"^(-?\d+)(\.\d+)?$"//浮点数
好了,Asp.Net类型转换类(通用类)代码分享到此结束。
下面看下ASP.NET页面数据验证通用类的实例代码。
publicclassPageValidate { privatestaticRegexRegPhone=newRegex("^[0-9]+[-]?[0-9]+[-]?[0-9]$"); privatestaticRegexRegNumber=newRegex("^[0-9]+$"); privatestaticRegexRegNumberSign=newRegex("^[+-]?[0-9]+$"); privatestaticRegexRegDecimal=newRegex("^[0-9]+[.]?[0-9]+$"); privatestaticRegexRegDecimalSign=newRegex("^[+-]?[0-9]+[.]?[0-9]+$");//等价于^[+-]?\d+[.]?\d+$ privatestaticRegexRegEmail=newRegex("^[\\w-]+@[\\w-]+\\.(com|net|org|edu|mil|tv|biz|info)$");//w英文字母或数字的字符串,和[a-zA-Z0-9]语法一样 privatestaticRegexRegCHZN=newRegex("[\u4e00-\u9fa5]"); publicPageValidate() { } //数字字符串检查#region数字字符串检查 publicstaticboolIsPhone(stringinputData) { Matchm=RegPhone.Match(inputData); returnm.Success; } /**////<summary> ///检查Request查询字符串的键值,是否是数字,最大长度限制 ///</summary> ///<paramname="req">Request</param> ///<paramname="inputKey">Request的键值</param> ///<paramname="maxLen">最大长度</param> ///<returns>返回Request查询字符串</returns> publicstaticstringFetchInputDigit(HttpRequestreq,stringinputKey,intmaxLen) { stringretVal=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; returnretVal; } /**////<summary> ///是否数字字符串 ///</summary> ///<paramname="inputData">输入字符串</param> ///<returns></returns> publicstaticboolIsNumber(stringinputData) { Matchm=RegNumber.Match(inputData); returnm.Success; } /**////<summary> ///是否数字字符串可带正负号 ///</summary> ///<paramname="inputData">输入字符串</param> ///<returns></returns> publicstaticboolIsNumberSign(stringinputData) { Matchm=RegNumberSign.Match(inputData); returnm.Success; } /**////<summary> ///是否是浮点数 ///</summary> ///<paramname="inputData">输入字符串</param> ///<returns></returns> publicstaticboolIsDecimal(stringinputData) { Matchm=RegDecimal.Match(inputData); returnm.Success; } /**////<summary> ///是否是浮点数可带正负号 ///</summary> ///<paramname="inputData">输入字符串</param> ///<returns></returns> publicstaticboolIsDecimalSign(stringinputData) { Matchm=RegDecimalSign.Match(inputData); returnm.Success; } #endregion //中文检测#region中文检测 /**////<summary> ///检测是否有中文字符 ///</summary> ///<paramname="inputData"></param> ///<returns></returns> publicstaticboolIsHasCHZN(stringinputData) { Matchm=RegCHZN.Match(inputData); returnm.Success; } #endregion //邮件地址#region邮件地址 /**////<summary> ///是否是浮点数可带正负号 ///</summary> ///<paramname="inputData">输入字符串</param> ///<returns></returns> publicstaticboolIsEmail(stringinputData) { Matchm=RegEmail.Match(inputData); returnm.Success; } #endregion //其他#region其他 /**////<summary> ///检查字符串最大长度,返回指定长度的串 ///</summary> ///<paramname="sqlInput">输入字符串</param> ///<paramname="maxLength">最大长度</param> ///<returns></returns> publicstaticstringSqlText(stringsqlInput,intmaxLength) { if(sqlInput!=null&&sqlInput!=string.Empty) { sqlInput=sqlInput.Trim(); if(sqlInput.Length>maxLength)//按最大长度截取字符串 sqlInput=sqlInput.Substring(0,maxLength); } returnsqlInput; } /**////<summary> ///字符串编码 ///</summary> ///<paramname="inputData"></param> ///<returns></returns> publicstaticstringHtmlEncode(stringinputData) { returnHttpUtility.HtmlEncode(inputData); } /**////<summary> ///设置Label显示Encode的字符串 ///</summary> ///<paramname="lbl"></param> ///<paramname="txtInput"></param> publicstaticvoidSetLabel(Labellbl,stringtxtInput) { lbl.Text=HtmlEncode(txtInput); } publicstaticvoidSetLabel(Labellbl,objectinputObj) { SetLabel(lbl,inputObj.ToString()); } //字符串清理 publicstaticstringInputText(stringinputString,intmaxLength) { StringBuilderretVal=newStringBuilder(); //检查是否为空 if((inputString!=null)&&(inputString!=String.Empty)) { inputString=inputString.Trim(); //检查长度 if(inputString.Length>maxLength) inputString=inputString.Substring(0,maxLength); //替换危险字符 for(inti=0;i<inputString.Length;i++) { switch(inputString[i]) { case'"': retVal.Append("""); break; case'<': retVal.Append("<"); break; case'>': retVal.Append(">"); break; default: retVal.Append(inputString[i]); break; } } retVal.Replace("'","");//替换单引号 } returnretVal.ToString(); } /**////<summary> ///转换成HTMLcode ///</summary> ///<paramname="str">string</param> ///<returns>string</returns> publicstaticstringEncode(stringstr) { str=str.Replace("&","&"); str=str.Replace("'","''"); str=str.Replace("\"","""); str=str.Replace(""," "); str=str.Replace("<","<"); str=str.Replace(">",">"); str=str.Replace("\n","<br>"); returnstr; } /**////<summary> ///解析html成普通文本 ///</summary> ///<paramname="str">string</param> ///<returns>string</returns> publicstaticstringDecode(stringstr) { str=str.Replace("<br>","\n"); str=str.Replace(">",">"); str=str.Replace("<","<"); str=str.Replace(" ",""); str=str.Replace(""","\""); returnstr; } publicstaticstringSqlTextClear(stringsqlText) { if(sqlText==null) { returnnull; } if(sqlText=="") { return""; } sqlText=sqlText.Replace(",","");//去除, sqlText=sqlText.Replace("<","");//去除< sqlText=sqlText.Replace(">","");//去除> sqlText=sqlText.Replace("--","");//去除-- sqlText=sqlText.Replace("'","");//去除' sqlText=sqlText.Replace("\"","");//去除" sqlText=sqlText.Replace("=","");//去除= sqlText=sqlText.Replace("%","");//去除% sqlText=sqlText.Replace("","");//去除空格 returnsqlText; } #endregion //是否由特定字符组成#region是否由特定字符组成 publicstaticboolisContainSameChar(stringstrInput) { stringcharInput=string.Empty; if(!string.IsNullOrEmpty(strInput)) { charInput=strInput.Substring(0,1); } returnisContainSameChar(strInput,charInput,strInput.Length); } publicstaticboolisContainSameChar(stringstrInput,stringcharInput,intlenInput) { if(string.IsNullOrEmpty(charInput)) { returnfalse; } else { RegexRegNumber=newRegex(string.Format("^([{0}])+$",charInput)); //RegexRegNumber=newRegex(string.Format("^([{0}]{{1}})+$",charInput,lenInput)); Matchm=RegNumber.Match(strInput); returnm.Success; } } #endregion //检查输入的参数是不是某些定义好的特殊字符:这个方法目前用于密码输入的安全检查#region检查输入的参数是不是某些定义好的特殊字符:这个方法目前用于密码输入的安全检查 /**////<summary> ///检查输入的参数是不是某些定义好的特殊字符:这个方法目前用于密码输入的安全检查 ///</summary> publicstaticboolisContainSpecChar(stringstrInput) { string[]list=newstring[]{"123456","654321"}; boolresult=newbool(); for(inti=0;i<list.Length;i++) { if(strInput==list[i]) { result=true; break; } } returnresult; } #endregion }