把下面的代碼放在一個類中,叫"utility.cs"
using system;
using system.collections.generic;
using system.linq;
using system.web;
using system.text.regularexpressions;
using system.text;
using system.web.ui.webcontrols;
namespace tool
{
public class utility
{
private static regex regphone = new regex("^[0-9]+[-]?[0-9]+[-]?[0-9]$");
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]");
/// <summary>
/// 驗證文本資料是不是為空
/// </summary>
/// <param name="o">對象</param>
/// <returns>布爾型</returns>
public static bool checkformtextnotempty(object o)
{
if (o == null || o.tostring().trim().length == 0)
{
return false;
}
else
return true;
}
/// 判斷對象是否為int32類型的數字
/// <param name="expression"></param>
/// <returns></returns>
public static bool isnumeric(object expression)
if (expression != null)
string str = expression.tostring();
if (str.length > 0 && str.length <= 11 && regex.ismatch(str, @"^[-]?[0-9]*[.]?[0-9]*$"))
{
if ((str.length < 10) || (str.length == 10 && str[0] == '1') || (str.length == 11 && str[0] == '-' && str[1] == '1'))
{
return true;
}
}
return false;
/// 從session裡面擷取userinfo
public static model.userinfo getuserfromsession()
object o = system.web.httpcontext.current.session["safesystemuserinfo"];
if (o != null)
return (o as model.userinfo);
return null;
/// 從session裡面移除userinfo
public static void removeuserfromsession()
system.web.httpcontext.current.session["safesystemuserinfo"]="";
/// 儲存員工資訊到session
/// <param name="staff"></param>
public static void savauserinsession(model.userinfo user)
system.web.httpcontext.current.session["safesystemuserinfo"] = user;
#region 數字字元串檢查
public static bool isphone(string inputdata)
match m = regphone.match(inputdata);
return m.success;
/// <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;
}
/// 是否數字字元串
/// <param name="inputdata">輸入字元串</param>
/// <returns></returns>
public static bool isnumber(string inputdata)
match m = regnumber.match(inputdata);
return m.success;
}
/// 是否數字字元串 可帶正負号
public static bool isnumbersign(string inputdata)
match m = regnumbersign.match(inputdata);
/// 是否是浮點數
public static bool isdecimal(string inputdata)
match m = regdecimal.match(inputdata);
/// 是否是浮點數 可帶正負号
public static bool isdecimalsign(string inputdata)
match m = regdecimalsign.match(inputdata);
/// 驗證輸入大小是否超過了資料庫允許的大小
/// <param name="input">輸入的内容</param>
/// <param name="maxlength">最大長度</param>
public static bool isgreaterthanstandardlength(string input, int maxlength)
if (input.length >= maxlength)
#endregion
#region 中文檢測
/// 檢測是否有中文字元
/// <param name="inputdata"></param>
public static bool ishaschzn(string inputdata)
match m = regchzn.match(inputdata);
}
#region 郵件位址
public static bool isemail(string inputdata)
match m = regemail.match(inputdata);
#region 日期格式判斷
/// 日期格式字元串判斷
/// <param name="str"></param>
public static bool isdatetime(string str)
try
if (!string.isnullorempty(str))
datetime.parse(str);
return true;
else
return false;
catch
#endregion
#region 其他
/// 檢查字元串最大長度,傳回指定長度的串
/// <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;
/// 字元串編碼
public static string htmlencode(string inputdata)
return httputility.htmlencode(inputdata);
/// 設定label顯示encode的字元串
/// <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());
//字元串清理
public static string inputtext(string inputstring, int maxlength)
stringbuilder retval = new stringbuilder();
// 檢查是否為空
if ((inputstring != null) && (inputstring != string.empty))
inputstring = inputstring.trim();
//檢查長度
if (inputstring.length > maxlength)
inputstring = inputstring.substring(0, maxlength);
//替換危險字元
for (int i = 0; i < inputstring.length; i++)
switch (inputstring[i])
{
case '"':
retval.append("&quot;");
break;
case '<':
retval.append("&lt;");
case '>':
retval.append("&gt;");
default:
retval.append(inputstring[i]);
}
}
retval.replace("'", " ");// 替換單引号
return retval.tostring();
/// 轉換成 html code
/// <param name="str">string</param>
/// <returns>string</returns>
public static string encode(string str)
str = str.replace("&","&amp;");
str = str.replace("'","''");
str = str.replace(""","&quot;");
str = str.replace(" ","&nbsp;");
str = str.replace("<","&lt;");
str = str.replace(">","&gt;");
str = str.replace("\n","<br>");
return str;
///解析html成 普通文本
public static string decode(string str)
str = str.replace("<br>","\n");
str = str.replace("&gt;",">");
str = str.replace("&lt;","<");
str = str.replace("&nbsp;"," ");
str = str.replace("&quot;",""");
public static string sqltextclear(string sqltext)
if (sqltext == null)
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(" ", "");//去除空格
return sqltext;
#region 是否由特定字元組成
public static bool iscontainsamechar(string strinput)
string charinput = string.empty;
if (!string.isnullorempty(strinput))
charinput = strinput.substring(0, 1);
return iscontainsamechar(strinput, charinput, strinput.length);
public static bool iscontainsamechar(string strinput, string charinput, int leninput)
if (string.isnullorempty(charinput))
regex regnumber = new regex(string.format("^([{0}])+$", charinput));
//regex regnumber = new regex(string.format("^([{0}]{{1}})+$", charinput,leninput));
match m = regnumber.match(strinput);
return m.success;
#region 檢查輸入的參數是不是某些定義好的特殊字元:這個方法目前用于密碼輸入的安全檢查
/// 檢查輸入的參數是不是某些定義好的特殊字元:這個方法目前用于密碼輸入的安全檢查
public static bool iscontainspecchar(string strinput)
string[] list = new string[] { "123456", "654321" };
bool result = new bool();
for (int i = 0; i < list.length; i++)
if (strinput == list[i])
result = true;
break;
return result;
}
}
基本驗證方法
string strerr = "";
if (!utility.isnumber(yeartxt.value))
strerr += "通知卡文号時間錯誤!\\n";
if (numbertxt.value.trim().length==0)
strerr += "文檔編号不能為空!\\n";
if (chargenametxt.value.trim().length == 0)
strerr += "部門負責人不能為空!\\n";
if (!utility.isdatetime(completedatetxt.value))
strerr += "整改日期格式不正确!\\n";
if (strerr != "")
jscript.alert(strerr);
return;
else
.......................