C#如何使用Regex來校正欄位串輸入的系列函數
#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;
}
/// <summary>
///返回指定長度字串。
/// </summary>
/// <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)
{
byte[] sarr = System.Text.Encoding.Default.GetBytes(str);
if(sarr.Length>len && len>0)
return System.Text.Encoding.Default.GetString(sarr,0,len);
else
return str;
}
/// <summary>
/// //判斷身份證
/// </summary>
/// <param name="Cert"></param>
/// <returns></returns>
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})(\]?)$");
}*/
/// <summary>
///判斷使用者名稱
/// </summary>
/// <param name="UserName"></param>
/// <returns></returns>
public static bool IsValidUserName(string UserName)
{
return Regex.IsMatch(UserName, @"^([a-z]|[A-Z]){1}\w{0,27}$");
}
/// <summary>
///判斷英文名
/// </summary>
/// <param name="EnPersonName"></param>
/// <returns></returns>
public static bool IsValidEnPersonName(string EnPersonName)
{
return Regex.IsMatch(EnPersonName, @"^[a-zA-Z]{1,30}$");
}
/// <summary>
/// 判斷密碼
/// </summary>
/// <param name="PassWord"></param>
/// <returns></returns>
public static bool IsValidPassWord(string PassWord)
{
return Regex.IsMatch(PassWord, @"^(\w){6,20}$");
}
/// <summary>
/// 判斷電話/傳真
/// </summary>
/// <param name="Tel"></param>
/// <returns></returns>
public static bool IsValidTel(string Tel)
{
return Regex.IsMatch(Tel, @"^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$");
}
/// <summary>
/// 判斷手機
/// </summary>
/// <param name="Mobil"></param>
/// <returns></returns>
public static bool IsValidMobil(string Mobil)
{
return Regex.IsMatch(Mobil, @"^(\d)+[-]?(\d){6,12}$");
}
/// <summary>
/// 郵遞區號
/// </summary>
/// <param name="Zip"></param>
/// <returns></returns>
public static bool IsValidZip(string Zip)
{
return Regex.IsMatch(Zip, @"^[a-z0-9 ]{3,12}$");
}
/// <summary>
/// 判斷日期
/// </summary>
/// <param name="Date"></param>
/// <returns></returns>
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}$");
}*/
/// <summary>
/// 判斷只能輸字母
/// </summary>
/// <param name="EnName"></param>
/// <returns></returns>
public static bool IsValidEnName(string EnName)
{
return Regex.IsMatch(EnName, @"[a-zA-Z]");
}
#endregion