/********************************
Author: Ricard.M.Tan
CreateTime: 2020/4/2 16:14:58
********************************/
using System.Text.RegularExpressions;
namespace ChnGZ.Paradise {
public class RegexValidHelper {
/// <summary>
/// 校验日期
/// </summary>
/// <param name="datestring"></param>
/// <returns></returns>
public static bool IsValidDate(string datestring) {
string pattern = @"^((\d{2}(([02468][048])|([13579][26]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|([1-2][0-9])))))|(\d{2}(([02468][1235679])|([13579][01345789]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(\s(((0?[1-9])|(1[0-2]))\:([0-5][0-9])((\s)|(\:([0-5][0-9])\s))([AM|PM|am|pm]{2,2})))?$";
return Regex.IsMatch(datestring, pattern);
}
/// <summary>
/// 校验邮箱
/// </summary>
/// <param name="strIn"></param>
/// <returns></returns>
public static bool IsValidEmail(string strIn) {
return Regex.IsMatch(strIn, @"^([\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>
/// <param name="ip"></param>
/// <returns></returns>
public static bool IsValidIP(string ip) {
return Regex.IsMatch(ip, @"(?<![\d\.])((25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)(?![\d\.])");
}
/// <summary>
/// 校验电话号码
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public static bool IsValidMobile(string input) {
return Regex.IsMatch(input, @"^((\(\d{2,3}\))|(\d{3}\-))?13\d{9}$");
}
/// <summary>
/// 校验数字
/// </summary>
/// <param name="strIn"></param>
/// <returns></returns>
public static bool IsValidNumber(string strIn) {
return Regex.IsMatch(strIn, @"^-?\d+$");
}
/// <summary>
/// 校验是否为Windows SSPI
/// </summary>
/// <param name="connectionstring"></param>
/// <returns></returns>
public static bool IsWindowsSSPI(string connectionstring) {
Regex regex = new Regex(@"Integrated Security=(?<sspi>\w+);*");
return (regex.Match(connectionstring).Result("${sspi}") == "SSPI");
}
/// <summary>
/// 匹配密码
/// </summary>
/// <param name="connectionstring"></param>
/// <returns></returns>
public static string MatchPassword(string connectionstring) {
Regex regex = new Regex(@"Password=(?<passwsd>\w+);?");
return regex.Match(connectionstring).Result("${passwsd}");
}
/// <summary>
/// 匹配协议端口
/// </summary>
/// <param name="url"></param>
/// <returns></returns>
public static string MatchProtocolPort(string url) {
Match match = new Regex(@"^(?<proto>\w+)://[^/]+?(?<port>:\d+)?/", RegexOptions.Compiled).Match(url);
if (match.Success) {
return match.Result("${proto}${port}");
}
return string.Empty;
}
}
}