正規表示法的字串驗證範例

範例:EMail、台灣手機號碼、台灣市話號碼、密碼、IP位址、台灣地址

判斷是否為合法的郵件地址

/// <summary>
/// 判斷是否為合法的郵件地址
/// </summary>
/// <param name="MailAddress">郵件地址</param>
public static bool IsValidMailAddress(string MailAddress)
{
   string RegPattern = @"^[+a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$";
   Regex _tmpRegex = new Regex(RegPattern, RegexOptions.IgnoreCase);
   return _tmpRegex.IsMatch(MailAddress);
}

判斷是否為合法的台灣市話號碼

/// <summary>
/// 判斷是否為合法的台灣市話號碼
/// </summary>
/// <param name="PhoneNumber">手機號碼</param>
public static bool IsValidPhoneNummberTW(string PhoneNumber)
{
   string RegPattern = @"^(0)([0-9]{1})([-]?)([0-9]{6,8})$";
   Regex _tmpRegex = new Regex(RegPattern, RegexOptions.IgnoreCase);
   return _tmpRegex.IsMatch(PhoneNumber);
}

判斷是否為合法的台灣手機號碼

/// <summary>
/// 判斷是否為合法的台灣手機號碼
/// </summary>
/// <param name="CellPhoneNumber">手機號碼</param>
public static bool IsValidCellPhoneNummberTW(string CellPhoneNumber)
{
   string RegPattern = @"^(09)([0-9]{2})([-]?)([0-9]{6})$";
   Regex _tmpRegex = new Regex(RegPattern, RegexOptions.IgnoreCase);
   return _tmpRegex.IsMatch(CellPhoneNumber);
}

判斷是否為合法的密碼規則。數字與字母的組合,最少6個字元,最多32個字元

/// <summary>
/// 判斷是否為合法的密碼規則。數字與字母的組合,最少6個字元,最多32個字元。
/// </summary>
/// <param name="CheckPassword">密碼文字</param>
/// <param name="MinLength">密碼最小長度</param>
/// <param name="MaxLength">密碼最大長度</param>
public static bool IsValidPassword(string CheckPassword, int MinLength, int MaxLength)
{
   if (MinLength > MaxLength) return false;
   if ((MinLength <= 0) || (MaxLength <= 0)) return false;
   string RegPattern = @"^(?=.*\d)(?=.*[a-zA-Z]).{" + MinLength.ToString() + "." + MaxLength.ToString() + "}$";
   Regex _tmpRegex = new Regex(RegPattern, RegexOptions.None);
   return _tmpRegex.IsMatch(CheckPassword);
}

判斷是否為合法的IP位址

/// <summary>
/// 判斷是否為合法的IP位址
/// </summary>
/// <param name="IPAddress">IP位址</param>
public static bool IsValidIPAddress(string IPAddress)
{
   string RegPattern = @"^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$";
   Regex _tmpRegex = new Regex(RegPattern, RegexOptions.IgnoreCase);
   return _tmpRegex.IsMatch(IPAddress);
}

判斷是否為合法的台灣地址

/// <summary>
/// 判斷是否為合法的台灣地址
/// </summary>
/// <param name="Address">台灣地址</param>
public static bool IsValidAddress(string Address)
{
   string RegPattern = @"(?<zipcode>(^\\d{5}|^\\d{3})?)(?<city>\\D+?[縣市])(?<region>\\D+?(市區|鎮區|鎮市|[鄉鎮市區]))?(?<village>\\D+?[村里])?(?<neighbor>\\d+[鄰])?(?<road>\\D+?(村路|[路街道段]))?(?<section>\\D?段)?(?<lane>\\d+巷)?(?<alley>\\d+弄)?(?<no>\\d+號?)?(?<seq>-\\d+?(號))?(?<floor>\\d+樓)?(?<room>\\d+室)?(?<others>.+)?";
   Regex _tmpRegex = new Regex(RegPattern, RegexOptions.IgnoreCase);
   return _tmpRegex.IsMatch(Address);
}

 


程式是運氣與直覺堆砌而成的奇蹟。
若不具備這兩者,不可能以這樣的工時實現這樣的規格。
修改規格是對奇蹟吐槽的褻瀆行為。
而追加修改則是相信奇蹟還會重現的魯莽行動。