分享一個正則表達式幫助C#類

jopen 12年前發布 | 1K 次閱讀 RPM

using System.Globalization;
using System.Text.RegularExpressions;

/// <summary>
/// 正則表達式幫助類
/// </summary>
public sealed class RegexHelper
{
    private RegexHelper()
    {
    }

    /// <summary>
    /// 清除包含'字符串
    /// </summary>
    public const string CLEAN_STRING = @"[']";

    /// <summary>
    /// 驗證字符串是否為字符begin-end之間
    /// </summary>
    public const string IS_VALID_BYTE = @"^[A-Za-z0-9]{#0#,#1#}$";

    /// <summary>
    /// 驗證字符串是否為年月日
    /// </summary>
    public const string IS_VALID_DATE =
        @"^2\d{3}-(?:0?[1-9]|1[0-2])-(?:0?[1-9]|[1-2]\d|3[0-1])(?:0?[1-9]|1\d|2[0-3]):(?:0?[1-9]|[1-5]\d):(?:0?[1-9]|[1-5]\d)$";

    /// <summary>
    /// 驗證字符串是否為小數
    /// </summary>
    public const string IS_VALID_DECIMAL = @"[0].\d{1,2}|[1]";

    /// <summary>
    /// 驗證字符串是否為EMAIL
    /// </summary>
    public const string IS_VALID_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>
    /// 驗證字符串是否為IP
    /// </summary>
    public const string IS_VALID_IP =
        @"^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$";

    /// <summary>
    /// 驗證字符串是否為后綴名
    /// </summary>
    public const string IS_VALID_POSTFIX = @"\.(?i:{0})$";

    /// <summary>
    /// 驗證字符串是否為電話號碼
    /// </summary>
    public const string IS_VALID_TEL = @"(\d+-)?(\d{4}-?\d{7}|\d{3}-?\d{8}|^\d{7,8})(-\d+)?";

    /// <summary>
    /// 驗證字符串是否為URL
    /// </summary>
    public const string IS_VALID_URL = @"^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$";

    #region 替換字符串
    /// <summary>
    /// 替換字符串
    /// </summary>
    /// <param name="input">輸入字符串</param>
    /// <param name="regex">正則表達式</param>
    /// <returns>替換后字符串</returns>
    public static string ReplaceInput(string input, string regex)
    {
        return Regex.Replace(input, regex, string.Empty);
    }

    /// <summary>
    /// 替換字符串
    /// </summary>
    /// <param name="input">輸入字符串</param>
    /// <param name="regex">正則表達式</param>
    /// <param name="replace">替換字符串</param>
    /// <returns>替換后字符串</returns>
    public static string ReplaceInput(string input, string regex, string replace)
    {
        return Regex.Replace(input, regex, replace);
    }

    #endregion

    #region 驗證字符串

    /// <summary>
    /// 驗證字符串
    /// </summary>
    /// <param name="input">輸入字符串</param>
    /// <param name="regex">正則表達式</param>
    /// <returns>是否驗證通過</returns>
    public static bool CheckInput(string input, string regex)
    {
        return Regex.IsMatch(input, regex);
    }

    #endregion

    #region 常用方法

    /// <summary>
    /// 驗證字符串
    /// </summary>
    /// <param name="input">輸入字符串</param>
    /// <param name="regex">正則表達式</param>
    /// <param name="begin">開始數字</param>
    /// <param name="end">結尾數字</param>
    /// <returns>是否驗證通過</returns>
    public static bool ValidByte(string input, string regex, int begin, int end)
    {
        bool ret = false;
        if (!string.IsNullOrEmpty(regex))
        {
            string rep = regex.Replace("#0#", begin.ToString(CultureInfo.InvariantCulture));
            rep = rep.Replace("#1#", end.ToString(CultureInfo.InvariantCulture));
            ret = CheckInput(input, rep);
        }
        return ret;
    }

    /// <summary>
    /// 驗證字符串
    /// </summary>
    /// <param name="input">輸入字符串</param>
    /// <param name="regex">正則表達式</param>
    /// <param name="fix">后綴名</param>
    /// <returns>是否驗證通過</returns>
    public static bool ValidPostfix(string input, string regex, string fix)
    {
        string ret = string.Format(CultureInfo.InvariantCulture, regex, fix);
        return CheckInput(input, ret);
    }

    #endregion


}</pre><br />
 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!