// Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。 // // 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。 // // 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任! namespace Admin.NET.Core; /// /// 字符验证帮助类 /// public static partial class RegexHelper { /// /// 验证输入字符串是否与模式字符串匹配,匹配返回 true /// [GeneratedRegex(@"^[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}$", RegexOptions.IgnoreCase)] public static partial Regex GuidRegex(); /// /// 验证电话号码是否符合格式 /// [GeneratedRegex(@"^(\d{3,4})\d{7,8}$", RegexOptions.IgnoreCase)] public static partial Regex NumberTelRegex(); /// /// 验证邮箱地址是否符合格式 /// [GeneratedRegex(@"^[A-Za-z0-9](([\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$", RegexOptions.IgnoreCase)] public static partial Regex EmailRegex(); /// /// 验证一个或多个数字 /// [GeneratedRegex(@"(\d+)", RegexOptions.IgnoreCase)] public static partial Regex OneOrMoreNumbersRegex(); /// /// 验证是否为整数 /// [GeneratedRegex(@"^(-){0,1}\d+$", RegexOptions.IgnoreCase)] public static partial Regex IntRegex(); /// /// 验证是否为数字 /// [GeneratedRegex(@"^[0-9]*$", RegexOptions.IgnoreCase)] public static partial Regex NumberRegex(); /// /// 验证是否为整数或小数 /// [GeneratedRegex(@"^[0-9]+\.{0,1}[0-9]{0,2}$", RegexOptions.IgnoreCase)] public static partial Regex NumberIntOrDoubleRegex(); /// /// 验证是否为N位数字 /// [GeneratedRegex(@"^\d{n}$", RegexOptions.IgnoreCase)] public static partial Regex NumberSeveralNRegex(); /// /// 验证是否为至少N位数字 /// [GeneratedRegex(@"^\d{n,}$", RegexOptions.IgnoreCase)] public static partial Regex NumberSeveralAtLeastNRegex(); /// /// 验证是否为M至N位数字 /// [GeneratedRegex(@"^\d{m,n}$", RegexOptions.IgnoreCase)] public static partial Regex NumberSeveralMnRegex(); /// /// 验证是否为零或非零开头的数字 /// [GeneratedRegex(@"^(0|[1-9] [0-9]*)$", RegexOptions.IgnoreCase)] public static partial Regex NumberBeginZeroOrNotZeroRegex(); /// /// 验证是否为2位小数的正实数 /// [GeneratedRegex(@"^[0-9]+(.[0-9]{2})?$", RegexOptions.IgnoreCase)] public static partial Regex NumberPositiveRealTwoDoubleRegex(); /// /// 验证是否为1-3位小数的正实数 /// [GeneratedRegex(@"^[0-9]+(.[0-9]{1,3})?$", RegexOptions.IgnoreCase)] public static partial Regex NumberPositiveRealOneOrThreeDoubleRegex(); /// /// 验证是否为非零的正整数 /// [GeneratedRegex(@"^\+?[1-9][0-9]*$", RegexOptions.IgnoreCase)] public static partial Regex NumberPositiveIntNotZeroRegex(); /// /// 验证是否为非零的负整数 /// [GeneratedRegex(@"^\-?[1-9][0-9]*$", RegexOptions.IgnoreCase)] public static partial Regex NumberNegativeIntNotZeroRegex(); /// /// 验证是否为字母 /// [GeneratedRegex(@"^[A-Za-z]+$", RegexOptions.IgnoreCase)] public static partial Regex LetterRegex(); /// /// 验证是否为大写字母 /// [GeneratedRegex(@"^[A-Z]+$", RegexOptions.IgnoreCase)] public static partial Regex LetterCapitalRegex(); /// /// 验证是否为小写字母 /// [GeneratedRegex(@"^[a-z]+$", RegexOptions.IgnoreCase)] public static partial Regex LetterLowerRegex(); /// /// 验证是否为数字或英文字母 /// [GeneratedRegex(@"^[A-Za-z0-9]+$", RegexOptions.IgnoreCase)] public static partial Regex NumberOrLetterRegex(); /// /// 验证字符串长度是否在限定范围内 /// [GeneratedRegex(@"[^\x00-\xff]", RegexOptions.IgnoreCase)] public static partial Regex LengthStrRegex(); /// /// 验证是否为长度为3的字符 /// [GeneratedRegex(@"^.{3}$", RegexOptions.IgnoreCase)] public static partial Regex CharThreeRegex(); /// /// 验证是否为邮政编码 /// [GeneratedRegex(@"^\d{6}$", RegexOptions.IgnoreCase)] public static partial Regex PostCodeRegex(); /// /// 验证是否含有特殊字符 /// [GeneratedRegex(@"[^%&',;=?$\x22]+", RegexOptions.IgnoreCase)] public static partial Regex CharSpecialRegex(); /// /// 验证是否包含汉字 /// [GeneratedRegex(@"^[\u4e00-\u9fa5]{0,}$", RegexOptions.IgnoreCase)] public static partial Regex ContainChineseRegex(); /// /// 验证是否为汉字 /// [GeneratedRegex(@"[一-龥]", RegexOptions.IgnoreCase, "zh-CN")] public static partial Regex ChineseRegex(); /// /// 验证是否为网址 /// [GeneratedRegex(@"^(((file|gopher|news|nntp|telnet|http|ftp|https|ftps|sftp)://)|(www\.))+(([a-zA-Z0-9\.-]+\.[a-zA-Z]{2,6})|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(/[a-zA-Z0-9\&%\./-~-]*)?$", RegexOptions.IgnoreCase)] public static partial Regex UrlRegex(); /// /// 验证是否为请求安全参数字符串 /// [GeneratedRegex(@"(?<=password=|passwd=|pwd=|secret=|token=)[^&]+", RegexOptions.IgnoreCase)] public static partial Regex RequestSecurityParamsRegex(); /// /// 验证是否为月份 /// [GeneratedRegex(@"^^(0?[1-9]|1[0-2])$", RegexOptions.IgnoreCase)] public static partial Regex MonthRegex(); /// /// 验证是否为日期 /// [GeneratedRegex(@"^((0?[1-9])|((1|2)[0-9])|30|31)$", RegexOptions.IgnoreCase)] public static partial Regex DayRegex(); /// /// 验证是否为IP地址 /// [GeneratedRegex(@"^(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])$", RegexOptions.IgnoreCase)] public static partial Regex IpRegex(); /// /// 验证是否为Cron表达式 /// [GeneratedRegex(@"^\\s*($|#|\\w+\\s*=|(\\?|\\*|(?:[0-5]?\\d)(?:(?:-|\\/|\\,)(?:[0-5]?\\d))?(?:,(?:[0-5]?\\d)(?:(?:-|\\/|\\,)(?:[0-5]?\\d))?)*)\\s+(\\?|\\*|(?:[0-5]?\\d)(?:(?:-|\\/|\\,)(?:[0-5]?\\d))?(?:,(?:[0-5]?\\d)(?:(?:-|\\/|\\,)(?:[0-5]?\\d))?)*)\\s+(\\?|\\*|(?:[01]?\\d|2[0-3])(?:(?:-|\\/|\\,)(?:[01]?\\d|2[0-3]))?(?:,(?:[01]?\\d|2[0-3])(?:(?:-|\\/|\\,)(?:[01]?\\d|2[0-3]))?)*)\\s+(\\?|\\*|(?:0?[1-9]|[12]\\d|3[01])(?:(?:-|\\/|\\,)(?:0?[1-9]|[12]\\d|3[01]))?(?:,(?:0?[1-9]|[12]\\d|3[01])(?:(?:-|\\/|\\,)(?:0?[1-9]|[12]\\d|3[01]))?)*)\\s+(\\?|\\*|(?:[1-9]|1[012])(?:(?:-|\\/|\\,)(?:[1-9]|1[012]))?(?:L|W)?(?:,(?:[1-9]|1[012])(?:(?:-|\\/|\\,)(?:[1-9]|1[012]))?(?:L|W)?)*|\\?|\\*|(?:JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)(?:(?:-)(?:JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC))?(?:,(?:JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)(?:(?:-)(?:JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC))?)*)\\s+(\\?|\\*|(?:[0-6])(?:(?:-|\\/|\\,|#)(?:[0-6]))?(?:L)?(?:,(?:[0-6])(?:(?:-|\\/|\\,|#)(?:[0-6]))?(?:L)?)*|\\?|\\*|(?:MON|TUE|WED|THU|FRI|SAT|SUN)(?:(?:-)(?:MON|TUE|WED|THU|FRI|SAT|SUN))?(?:,(?:MON|TUE|WED|THU|FRI|SAT|SUN)(?:(?:-)(?:MON|TUE|WED|THU|FRI|SAT|SUN))?)*)(|\\s)+(\\?|\\*|(?:|\\d{4})(?:(?:-|\\/|\\,)(?:|\\d{4}))?(?:,(?:|\\d{4})(?:(?:-|\\/|\\,)(?:|\\d{4}))?)*))$", RegexOptions.IgnoreCase)] public static partial Regex CronRegex(); /// /// 验证是否为 Windows 普通文件路径 /// /// [GeneratedRegex(@"^(?:[a-zA-Z]:\\|\\\\)?(?:[^\\\/:*?""<>|\r\n]+\\)*[^\\\/:*?""<>|\r\n]+\\?$", RegexOptions.IgnoreCase)] public static partial Regex WindowsPathRegex(); /// /// 验证是否为 Linux 普通文件路径 /// /// [GeneratedRegex(@"^(\/|\/?([^/\0]+(\/[^/\0]+)*\/?))$", RegexOptions.IgnoreCase)] public static partial Regex LinuxPathRegex(); /// /// 验证是否为虚拟文件路径 /// /// [GeneratedRegex(@"^(~\/|\/)([a-zA-Z0-9_\-\.]+(\/[a-zA-Z0-9_\-\.]+)*)\/?$", RegexOptions.IgnoreCase)] public static partial Regex VirtualPathRegex(); /// /// 验证是否为嵌入文件路径 /// [GeneratedRegex(@"^embedded://(?[^/]+)/(?.*)$", RegexOptions.IgnoreCase)] public static partial Regex EmbeddedPathRegex(); /// /// 验证是否为内存文件路径 /// /// [GeneratedRegex(@"^(?i:(?:memory|mem):\/\/).+$", RegexOptions.IgnoreCase)] public static partial Regex MemoryPathRegex(); /// /// 验证是否为 Html 标签 /// /// [GeneratedRegex(@">([^<>]*)<", RegexOptions.IgnoreCase)] public static partial Regex HtmlTagContentRegex(); /// /// 验证是否文本分割为句子 /// /// [GeneratedRegex(@"[^.!?。!?]+[.!?。!?]?", RegexOptions.IgnoreCase)] public static partial Regex SentenceSplitterRegex(); /// /// 验证是否为 Unicode 字符 /// /// [GeneratedRegex(@"\\u([0-9A-Za-z]{4})")] public static partial Regex UnicodeRegex(); }