// 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();
}