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);}#endregionC#验证邮箱,电话,手机,数字,英文,日期,身份证,邮编,网址,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库来登录知乎,本文如果看不懂可以先看之前 ...
随机推荐
- Java多线程的Semaphore
Semaphore 信号量, 在多线程应用中, 用来控制同时访问某个特定资源的操作数量, 或者同时执行某个指定操作的数量, 还可以用来实现某种资源池限制, 或者对容器施加边界. 简单地说, Semap ...
- Python - Django - form 组件校验功能
app01/models.py: from django.db import models class UserInfo(models.Model): username = models.CharFi ...
- 浏览器中开发人员工具快速找到dom元素绑定那些JS事件
在web开发过程中难免会遇到让程序员去修改一些js代码东西,例如js的ajax和php等语言的交互等,在这其中你不得不了解点js的事件触发,且随着js的盛行各种插件的事件让程序员眼花缭乱,所以借助一个 ...
- linux echo -e 处理特殊字符
linux echo -e 处理特殊字符 若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:\a 发出警告声:\b 删除前一个字符:\c 最后不加上换行符号:\f 换行但光标仍旧停留 ...
- ActiveMQ学习教程
一.activemq安装 官网地址:https://activemq.apache.org/ 具体安装过程不赘述,解压即安装, 二.使用 activemq有queue和topic两种模式, 我们以qu ...
- [转帖]关于一个 websocket 多节点分布式问题的头条前端面试题
关于一个 websocket 多节点分布式问题的头条前端面试题 https://juejin.im/post/5dcb5372518825352f524614 你来说说 websocket 有什么用? ...
- Java基础笔试练习(八)
1. 以下关于构造函数的描述错误的是 ( ) A.每个类有且只能有一个构造函数. B.构造函数是类的一种特殊函数,它的方法名必须与类名相同 C.构造函数的主要作用是完成对类的对象的初始化工作 D.一般 ...
- vue封装一个简单的div框选时间的组件
记录一下我前段时间封装的一个vue组件吧.技术需要积累,有时间我把我之前写的还不错的组件都开源出来.并尝试vue和react 两种方式的组件封装.今天简单写下鼠标框选div选中效果的封装吧. div框 ...
- const指针和指向常量的指针
先看下面六种写法: . const int p; . const int *p; . int const* p; . int * const p; . const int * const p; . i ...
- docker容器与主机之间的文件复制
Easy—— 注意:“容器名与文件路径中间的冒号后不能有空格!” 1.从容器复制到主机: sudo docker cp 容器名:文件路径 主机文件/夹路径 2.从主机复制复制到容器: sudo doc ...