C#验证邮箱,电话,手机,数字,英文,日期,身份证,邮编,网址,IP类等常用函数封装
#region 验证邮箱验证邮箱
/**/
/// <summary>
/// 验证邮箱
/// </summary>
/// <param name="source"></param>
/// <returns></returns>
public
static
bool
IsEmail(
string
source)
{
return
Regex.IsMatch(source,
@"^[A-Za-z0-9](([_.-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([.-]?[a-zA-Z0-9]+)*).([A-Za-z]{2,})$"
, RegexOptions.IgnoreCase);
}
public
static
bool
HasEmail(
string
source)
{
return
Regex.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>
/// <param name="source"></param>
/// <returns></returns>
public
static
bool
IsUrl(
string
source)
{
return
Regex.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);
}
public
static
bool
HasUrl(
string
source)
{
return
Regex.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>
/// <param name="source"></param>
/// <returns></returns>
public
static
bool
IsDateTime(
string
source)
{
try
{
DateTime time = Convert.ToDateTime(source);
return
true
;
}
catch
{
return
false
;
}
}
#endregion
#region 验证手机号
/**/
/// <summary>
/// 验证手机号
/// </summary>
/// <param name="source"></param>
/// <returns></returns>
public
static
bool
IsMobile(
string
source)
{
return
Regex.IsMatch(source,
@"^1[35]d{9}$"
, RegexOptions.IgnoreCase);
}
public
static
bool
HasMobile(
string
source)
{
return
Regex.IsMatch(source,
@"1[35]d{9}"
, RegexOptions.IgnoreCase);
}
#endregion
#region 验证IP
/**/
/// <summary>
/// 验证IP
/// </summary>
/// <param name="source"></param>
/// <returns></returns>
public
static
bool
IsIP(
string
source)
{
return
Regex.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);
}
public
static
bool
HasIP(
string
source)
{
return
Regex.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>
/// <param name="Id"></param>
/// <returns></returns>
public
static
bool
IsIDCard(
string
Id)
{
if
(Id.Length == 18)
{
bool
check = IsIDCard18(Id);
return
check;
}
else
if
(Id.Length == 15)
{
bool
check = IsIDCard15(Id);
return
check;
}
else
{
return
false
;
}
}
public
static
bool
IsIDCard18(
string
Id)
{
long
n = 0;
if
(
long
.TryParse(Id.Remove(17),
out
n) ==
false
|| n < Math.Pow(10, 16) ||
long
.TryParse(Id.Replace(
'x'
,
'0'
).Replace(
'X'
,
'0'
),
out
n) ==
false
)
{
return
false
;
//数字验证
}
string
address =
"11x22x35x44x53x12x23x36x45x54x13x31x37x46x61x14x32x41x50x62x15x33x42x51x63x21x34x43x52x64x65x71x81x82x91"
;
if
(address.IndexOf(Id.Remove(2)) == -1)
{
return
false
;
//省份验证
}
string
birth = Id.Substring(6, 8).Insert(6,
"-"
).Insert(4,
"-"
);
DateTime time =
new
DateTime();
if
(DateTime.TryParse(birth,
out
time) ==
false
)
{
return
false
;
//生日验证
}
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();
int
sum = 0;
for
(
int
i = 0; i < 17; i++)
{
sum +=
int
.Parse(Wi[i]) *
int
.Parse(Ai[i].ToString());
}
int
y = -1;
Math.DivRem(sum, 11,
out
y);
if
(arrVarifyCode[y] != Id.Substring(17, 1).ToLower())
{
return
false
;
//校验码验证
}
return
true
;
//符合GB11643-1999标准
}
public
static
bool
IsIDCard15(
string
Id)
{
long
n = 0;
if
(
long
.TryParse(Id,
out
n) ==
false
|| n < Math.Pow(10, 14))
{
return
false
;
//数字验证
}
string
address =
"11x22x35x44x53x12x23x36x45x54x13x31x37x46x61x14x32x41x50x62x15x33x42x51x63x21x34x43x52x64x65x71x81x82x91"
;
if
(address.IndexOf(Id.Remove(2)) == -1)
{
return
false
;
//省份验证
}
string
birth = Id.Substring(6, 6).Insert(4,
"-"
).Insert(2,
"-"
);
DateTime time =
new
DateTime();
if
(DateTime.TryParse(birth,
out
time) ==
false
)
{
return
false
;
//生日验证
}
return
true
;
//符合15位身份证标准
}
#endregion
#region 是不是Int型的
/**/
/// <summary>
/// 是不是Int型的
/// </summary>
/// <param name="source"></param>
/// <returns></returns>
public
static
bool
IsInt(
string
source)
{
Regex regex =
new
Regex(
@"^(-){0,1}d+$"
);
if
(regex.Match(source).Success)
{
if
((
long
.Parse(source) > 0x7fffffffL) || (
long
.Parse(source) < -2147483648L))
{
return
false
;
}
return
true
;
}
return
false
;
}
#endregion
#region 看字符串的长度是不是在限定数之间 一个中文为两个字符
/**/
/// <summary>
/// 看字符串的长度是不是在限定数之间 一个中文为两个字符
/// </summary>
/// <param name="source">字符串</param>
/// <param name="begin">大于等于</param>
/// <param name="end">小于等于</param>
/// <returns></returns>
public
static
bool
IsLengthStr(
string
source,
int
begin,
int
end)
{
int
length = Regex.Replace(source,
@"[^x00-xff]"
,
"OK"
).Length;
if
((length <= begin) && (length >= end))
{
return
false
;
}
return
true
;
}
#endregion
#region 是不是中国电话,格式010-85849685
/**/
/// <summary>
/// 是不是中国电话,格式010-85849685
/// </summary>
/// <param name="source"></param>
/// <returns></returns>
public
static
bool
IsTel(
string
source)
{
return
Regex.IsMatch(source,
@"^d{3,4}-?d{6,8}$"
, RegexOptions.IgnoreCase);
}
#endregion
#region 邮政编码 6个数字
/**/
/// <summary>
/// 邮政编码 6个数字
/// </summary>
/// <param name="source"></param>
/// <returns></returns>
public
static
bool
IsPostCode(
string
source)
{
return
Regex.IsMatch(source,
@"^d{6}$"
, RegexOptions.IgnoreCase);
}
#endregion
#region 中文
/**/
/// <summary>
/// 中文
/// </summary>
/// <param name="source"></param>
/// <returns></returns>
public
static
bool
IsChinese(
string
source)
{
return
Regex.IsMatch(source,
@"^[u4e00-u9fa5]+$"
, RegexOptions.IgnoreCase);
}
public
static
bool
hasChinese(
string
source)
{
return
Regex.IsMatch(source,
@"[u4e00-u9fa5]+"
, RegexOptions.IgnoreCase);
}
#endregion
#region 验证是不是正常字符 字母,数字,下划线的组合
/**/
/// <summary>
/// 验证是不是正常字符 字母,数字,下划线的组合
/// </summary>
/// <param name="source"></param>
/// <returns></returns>
public
static
bool
IsNormalChar(
string
source)
{
return
Regex.IsMatch(source,
@"[wd_]+"
, RegexOptions.IgnoreCase);
}
#endregion
C#验证邮箱,电话,手机,数字,英文,日期,身份证,邮编,网址,IP类等常用函数封装的更多相关文章
- C#验证类 可验证:邮箱,电话,手机,数字,英文,日期,身份证,邮编,网址,IP (转)
namespace YongFa365.Validator { using System; using System.Text.RegularExpressions; /**//// <summ ...
- web开发常用的js验证,利用正则表达式验证邮箱、手机、身份证等输入
正则表达式验证 //邮箱 \-])+\.)+([a-zA-Z0-]{,})+$/; email = document.getElementById("email").value; ...
- php正则验证邮箱、手机号、姓名、身份证、特殊符号等
1.邮箱验证 1 $email='1515212@qq'; 2 $preg_email='/^[a-zA-Z0-9]+([-_.][a-zA-Z0-9]+)*@([a-zA-Z0-9]+[-.])+( ...
- c# 常见验证邮箱、电话号码、日期等格式
#region 验证邮箱验证邮箱 /**//// <summary> /// 验证邮箱 /// </summary> /// <param name="sour ...
- 关于js校验,检验常见的比如:电话,数字,邮箱,手机号等等
/** 验证数字:^[0-9]*$ 验证n位的数字:^\d{n}$ 验证至少n位数字:^\d{n,}$ 验证m-n位的数字:^\d{m,n}$ 验证零和非零开头的数字:^(0|[1-9 ...
- JavaScript验证字符串只能包含数字或者英文字符的代码实例
验证字符串只能包含数字或者英文字符的代码实例:本章节分享一段代码实例,它实现了验证字符串内容是否只包含英文字符或者数字.代码实例如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ...
- php正则匹配汉字提取其它信息剔除和验证邮箱
正则匹配汉字提取其它信息剔除demo <?php //提取字符串中的汉字其余信息剔除 $str='te,st 测 .试,.,.?!::·…~&@#,.?!:;.……-&@#“” ...
- python爬虫scrapy框架——人工识别知乎登录知乎倒立文字验证码和数字英文验证码
目前知乎使用了点击图中倒立文字的验证码: 用户需要点击图中倒立的文字才能登录. 这个给爬虫带来了一定难度,但并非无法解决,经过一天的耐心查询,终于可以人工识别验证码并达到登录成功状态,下文将和大家一一 ...
- python爬虫scrapy框架——人工识别登录知乎倒立文字验证码和数字英文验证码(2)
操作环境:python3 在上一文中python爬虫scrapy框架--人工识别知乎登录知乎倒立文字验证码和数字英文验证码(1)我们已经介绍了用Requests库来登录知乎,本文如果看不懂可以先看之前 ...
随机推荐
- WAL streaming (max_wal_senders > 0) requires wal_level "replica" or "logical"
初次使用pg的11版本,执行以下操作修改归wal_level设置: alter system set set wal_level='minimal'; 尝试重启pg,发现重启失败,并报错: waiti ...
- 图像基础知识之YUV
一.YUV常用格式 YUV是编译true-color颜色空间(color space)的种类,Y'UV, YUV, YCbCr,YPbPr等专有名词都可以称为YUV,彼此有重叠.“Y”表示明亮度(L ...
- 用Python实现的Internet电话软件(P2P-SIP)<开源>
本博客为本人学习笔记,代码出自GitHub:https://github.com/theintencity/p2p-sip 由于GitHub原著为英文,且相当的啰嗦,本文为翻译内容并去除其啰嗦的部分 ...
- Python3 queue队列类
class queue.PriorityQueue(maxsize=0) 优先级队列构造函数. maxsize 是个整数,用于设置可以放入队列中的项目数的上限.当达到这个大小的时候,插入操作将阻塞至队 ...
- JS字符串数字前面加加号会变成数字类型
JS中一个字符串中只有数字,如果该字符串前面加了个加号,这个数值就变成了number类型.如本文测试中,用lodop打印二维码,最后一个参数是一个字符串,在前面加了加号和不在前面加加号,通过控制台输出 ...
- V8世界探险 (1) - v8 API概览
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/lusing/article/detai ...
- 【Python学习之九】模块
环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 python3.6 一.模块的使用和安装模块和C语言中的头文件以及Ja ...
- html5获取自己定位的方法
html5获取自己定位的方法直接用高德地图api 不要用百度地图api 不准确 <pre><!doctype html><html><head> < ...
- 嵌入式02 STM32 实验01 端口复用和重映射
内设与外设: 端口复用和端口重映射都需要了解内设和外设,那么什么是内设?什么是外设? 内设:单片机内部集成的功能一般包括:串口模块.SPI模块(Serial Peripheral Interface ...
- Mysql中HAVING的相关使用方法
having字句可以让我们筛选分组之后的各种数据,where字句在聚合前先筛选记录,也就是说作用在group by和having字句前. 而having子句在聚合后对组记录进行筛选.我的理解就是真实表 ...