基于方便各个项目的引用和扩展的目的,以下收集了一些常用的验证信息:
代码 usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Text.RegularExpressions;
namespaceValidatorTest
{
///<summary>
///RegExpSoruce:/DisplayPatterns.aspx
///Author:Keingreatandforever@
///Intro:验证网址,IP,邮箱,电话,手机,数字,英文,日期,身份证,邮编,
///原则上是中国通用,这里只是提供一些通用的验证,在各种场合有特殊情况的肯定要自己再补充。
///Version:1.0
///</summary>
publicclassValidator
{
#region验证邮箱
/**/
///<summary>
///验证邮箱
///</summary>
///<paramname="source"></param>
///<returns></returns>
publicstaticboolIsEmail(stringsource)
{
returnRegex.IsMatch(source,@"^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$",RegexOptions.IgnoreCase);
}
publicstaticboolHasEmail(stringsource)
{
returnRegex.IsMatch(source,@"[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})",RegexOptions.IgnoreCase);
}
#endregion
#region验证网址
/**/
///<summary>
///验证网址
///</summary>
///<paramname="source"></param>
///<returns></returns>
publicstaticboolIsUrl(stringsource)
{
returnRegex.IsMatch(source,@"^(((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);
}
publicstaticboolHasUrl(stringsource)
{
returnRegex.IsMatch(source,@"(((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);
}
#endregion
#region验证日期
/**/
///<summary>
///验证日期
///</summary>
///<paramname="source"></param>
///<returns></returns>
publicstaticboolIsDateTime(stringsource)
{
boolflag=false;
DateTimetime=newDateTime();
if(DateTime.TryParse(source,outtime))
{
flag=true;
}
returnflag;
}
#endregion
#region验证手机号
/**/
///<summary>
///验证手机号
///</summary>
///<paramname="source"></param>
///<returns></returns>
publicstaticboolIsMobile(stringsource)
{
returnRegex.IsMatch(source,@"^1[35]\d{9}$",RegexOptions.IgnoreCase);
}
publicstaticboolHasMobile(stringsource)
{
returnRegex.IsMatch(source,@"1[35]\d{9}",RegexOptions.IgnoreCase);
}
#endregion
#region验证IP
/**/
///<summary>
///验证IP
///</summary>
///<paramname="source"></param>
///<returns></returns>
publicstaticboolIsIP(stringsource)
{
returnRegex.IsMatch(source,@"^(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);
}
publicstaticboolHasIP(stringsource)
{
returnRegex.IsMatch(source,@"(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);
}
#endregion
#region验证身份证是否有效
/**/
///<summary>
///验证身份证是否有效
///</summary>
///<paramname="Id"></param>
///<returns></returns>
publicstaticboolIsIDCard(stringId)
{
if(Id.Length==18)
{
boolcheck=IsIDCard18(Id);
returncheck;
}
elseif(Id.Length==15)
{
boolcheck=IsIDCard15(Id);
returncheck;
}
else
{
returnfalse;
}
}
publicstaticboolIsIDCard18(stringId)
{
longn=0;
if(long.TryParse(Id.Remove(17),outn)==false||n<Math.Pow(10,16)||long.TryParse(Id.Replace('x','0').Replace('X','0'),outn)==false)
{
returnfalse;//数字验证
}
stringaddress="11x22x35x44x53x12x23x36x45x54x13x31x37x46x61x14x32x41x50x62x15x33x42x51x63x21x34x43x52x64x65x71x81x82x91";
if(address.IndexOf(Id.Remove(2))==-1)
{
returnfalse;//省份验证
}
stringbirth=Id.Substring(6,8).Insert(6,"-").Insert(4,"-");
DateTimetime=newDateTime();
if(DateTime.TryParse(birth,outtime)==false)
{
returnfalse;//生日验证
}
string[]arrVarifyCode=("1,0,x,9,8,7,6,5,4,3,2").Split(',');
string[]Wi=("7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2").Split(',');
char[]Ai=Id.Remove(17).ToCharArray();
intsum=0;
for(inti=0;i<17;i++)
{
sum+=int.Parse(Wi[i])*int.Parse(Ai[i].ToString());
}
inty=-1;
Math.DivRem(sum,11,outy);
if(arrVarifyCode[y]!=Id.Substring(17,1).ToLower())
{
returnfalse;//校验码验证
}
returntrue;//符合GB11643-1999标准
}
publicstaticboolIsIDCard15(stringId)
{
longn=0;
if(long.TryParse(Id,outn)==false||n<Math.Pow(10,14))
{
returnfalse;//数字验证
}
stringaddress="11x22x35x44x53x12x23x36x45x54x13x31x37x46x61x14x32x41x50x62x15x33x42x51x63x21x34x43x52x64x65x71x81x82x91";
if(address.IndexOf(Id.Remove(2))==-1)
{
returnfalse;//省份验证
}
stringbirth=Id.Substring(6,6).Insert(4,"-").Insert(2,"-");
DateTimetime=newDateTime();
if(DateTime.TryParse(birth,outtime)==false)
{
returnfalse;//生日验证
}
returntrue;//符合15位身份证标准
}
#endregion
#region是不是Int型的
/**/
///<summary>
///是不是Int型的
///</summary>
///<paramname="source"></param>
///<returns></returns>
publicstaticboolIsInt(stringsource)
{
Regexregex=newRegex(@"^(-){0,1}\d+$");
if(regex.Match(source).Success)
{
if((long.Parse(source)>0x7fffffffL)||(long.Parse(source)<-2147483648L))
{
returnfalse;
}
returntrue;
}
returnfalse;
}
#endregion
#region看字符串的长度是不是在限定数之间一个中文为两个字符
/**/
///<summary>
///看字符串的长度是不是在限定数之间一个中文为两个字符
///</summary>
///<paramname="source">字符串</param>
///<paramname="begin">大于等于</param>
///<paramname="end">小于等于</param>
///<returns></returns>
publicstaticboolIsLengthStr(stringsource,intbegin,intend)
{
intlength=Regex.Replace(source,@"[^\x00-\xff]","OK").Length;
if((length<=begin)&&(length>=end))
{
returnfalse;
}
returntrue;
}
#endregion
#region是不是中国电话,格式010-85849685
/**/
///<summary>
///是不是中国电话,格式010-85849685
///</summary>
///<paramname="source"></param>
///<returns></returns>
publicstaticboolIsTel(stringsource)
{
returnRegex.IsMatch(source,@"^\d{3,4}-?\d{6,8}$",RegexOptions.IgnoreCase);
}
#endregion
#region邮政编码6个数字
/**/
///<summary>
///邮政编码6个数字
///</summary>
///<paramname="source"></param>
///<returns></returns>
publicstaticboolIsPostCode(stringsource)
{
returnRegex.IsMatch(source,@"^\d{6}$",RegexOptions.IgnoreCase);
}
#endregion
#region中文
/**/
///<summary>
///中文
///</summary>
///<paramname="source"></param>
///<returns></returns>
publicstaticboolIsChinese(stringsource)
{
returnRegex.IsMatch(source,@"^[\u4e00-\u9fa5]+$",RegexOptions.IgnoreCase);
}
publicstaticboolhasChinese(stringsource)
{
returnRegex.IsMatch(source,@"[\u4e00-\u9fa5]+",RegexOptions.IgnoreCase);
}
#endregion
#region验证是不是正常字符字母,数字,下划线的组合
/**/
///<summary>
///验证是不是正常字符字母,数字,下划线的组合
///</summary>
///<paramname="source"></param>
///<returns></returns>
publicstaticboolIsNormalChar(stringsource)
{
returnRegex.IsMatch(source,@"[\w\d_]+",RegexOptions.IgnoreCase);
}
#endregion
}
}
参考地址:
1./DisplayPatterns.aspx
2. /yongfa365/archive//07/19/YongFa365_Validator.html