C#如何使用正規表達式來校驗字段串輸入的系列函數
#region 輸入字段串校驗系列函數
/// <summary>
///獲得字元串長度
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static int GetStrLength(string str)
{
byte[] sarr = System.Text.Encoding.Default.GetBytes(str);
return sarr.Length;
}
///傳回指定長度字元串。
/// <param name="str">字元串</param>
/// <param name="len">長度</param>
/// <returns>指定長度字元串</returns>
/// <remarks>
/// 在文本編輯框(TextBox控件)中,一個中文漢字和一個英文字母一樣都是占一位位元組,
/// 但是在SQL Server資料庫中,存儲一個中文漢字是占用兩位位元組,這樣就可能會導緻
/// 在儲存文本編輯框的内容時位元組被截斷,儲存出錯。是以就需要傳回指定長度的目前 ANSI 代碼頁的編碼字元。
/// <code>
/// string strTmp = txtMemo.Text;
/// strTmp=SinoSofts.Common.PublicClass.GetStrEncoding(strTmp,txtMemo.MaxLength);
/// txtMemo.Text=strTmp;
/// </code>
/// </remarks>
public static string GetStrEncoding(string str,int len)
if(sarr.Length>len && len>0)
return System.Text.Encoding.Default.GetString(sarr,0,len);
else
return str;
/// //判斷身份證
/// <param name="Cert"></param>
public static bool IsValidCert(string Cert)
return Regex.IsMatch(Cert, @"^(\d{15}|\d{17}[\dx])$");
//判斷郵件
/*public static bool IsValidEmail(string email)
return Regex.IsMatch(email, @"^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$");
}*/
///判斷使用者名
/// <param name="UserName"></param>
public static bool IsValidUserName(string UserName)
return Regex.IsMatch(UserName, @"^([a-z]|[A-Z]){1}\w{0,27}$");
///判斷英文名
/// <param name="EnPersonName"></param>
public static bool IsValidEnPersonName(string EnPersonName)
return Regex.IsMatch(EnPersonName, @"^[a-zA-Z]{1,30}$");
/// 判斷密碼
/// <param name="PassWord"></param>
public static bool IsValidPassWord(string PassWord)
return Regex.IsMatch(PassWord, @"^(\w){6,20}$");
/// 判斷電話/傳真
/// <param name="Tel"></param>
public static bool IsValidTel(string Tel)
return Regex.IsMatch(Tel, @"^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$");
/// 判斷手機
/// <param name="Mobil"></param>
public static bool IsValidMobil(string Mobil)
return Regex.IsMatch(Mobil, @"^(\d)+[-]?(\d){6,12}$");
/// 郵政編碼
/// <param name="Zip"></param>
public static bool IsValidZip(string Zip)
return Regex.IsMatch(Zip, @"^[a-z0-9 ]{3,12}$");
/// 判斷日期
/// <param name="Date"></param>
public static bool IsValidDate(string Date)
bool bValid=Regex.IsMatch(Date, @"^[12]{1}(\d){3}[-][01]?(\d){1}[-][0123]?(\d){1}$");
return (bValid && Date.CompareTo("1753-01-01")>=0);
//判斷整型
/*public static bool IsValidInt(string Int)
return Regex.IsMatch(Int, @"^[1-9]{1}[0-9]{0,6}$");
/// 判斷隻能輸字母
/// <param name="EnName"></param>
public static bool IsValidEnName(string EnName)
return Regex.IsMatch(EnName, @"[a-zA-Z]");
#endregion