当前位置: 首页 > 编程日记 > 正文

.NET2.0隐形的翅膀,正则表达式搜魂者【月儿原创】

.NET2.0隐形的翅膀,正则表达式搜魂者

作者:清清月儿

主页:http://blog.csdn.net/21aspnet/           时间:2007.4.14



本文实现了:
只能输入1个数字
只能输入n个数字
只能输入至少n个数字
只能输入m到n个数字
只能输入数字
只能输入某个区间数字
只能输入0和非0打头的数字
只能输入实数
只能输入n位小数的正实数
只能输入m-n位小数的正实数
只能输入非0的正整数
只能输入非0的负整数
只能输入n个字符
只能输入英文字符
只能输入大写英文字符
只能输入小写英文字符
只能输入英文字符+数字
只能输入英文字符/数字/下划线
密码举例
验证首字母大写
验证网址(带?id=中文)VS.NET2005无此功能
验证汉字
验证QQ号
验证电子邮件(验证MSN号一样)
验证身份证号(粗验,最好服务器端调类库再细验证)
验证手机号(包含159,不包含小灵通)
验证电话号码号(很复杂,VS.NET2005给的是错的)
验证护照
验证IP,验证域验证信用卡(支持VISA卡,万事达卡,Discover卡,美国运通卡)
验证ISBN国际标准书号

验证GUID全球唯一标识符
验证文件路径和扩展名
验证Html颜色值

... ...
我知道
我一直有双隐形的翅膀
带我飞
给我希望
我终于
看到
所有梦想都开花
追逐的年轻
... ...
                  ---------------歌手:张韶涵 专辑:潘朵拉

正则表达式是.NET隐形的语法。关于其语法的文章很多,也可以参考MSDN。本文的目的是举例,包括所有的正则表达式用法,会不断补充,欢迎大家留言提供支持!

以下链接有足够多的基本教程:
http://blog.csdn.net/21aspnet/category/285967.aspx

RegularExpressionValidator控件
使用RegularExpressionValidator控件,当然也可以不用RegularExpressionValidator控件在后台直接验证
ValidationExpression属性自带了几个默认验证方法,但是那远远不够的。ErrorMessage属性是报错信息。



如图所示可以点击“...”弹出的窗口选择你要的正则表达式,或者直接自己写


在IE里输入不是对应格式的时候就会报错


验证数字:

只能输入1个数字

表达式^/d$
描述匹配一个数字
匹配的例子0,1,2,3
不匹配的例子

只能输入n个数字

表达式^/d{n}$  例如^/d{8}$
描述匹配8个数字
匹配的例子12345678,22223334,12344321
不匹配的例子

只能输入至少n个数字

表达式^/d{n,}$ 例如^/d{8,}$
描述匹配最少n个数字
匹配的例子12345678,123456789,12344321
不匹配的例子

只能输入m到n个数字

表达式^/d{m,n}$ 例如^/d{7,8}$
描述匹配m到n个数字
匹配的例子12345678,1234567
不匹配的例子123456,123456789

只能输入数字

表达式^[0-9]*$
描述匹配任意个数字
匹配的例子12345678,1234567
不匹配的例子E,清清月儿,http://blog.csdn.net/21aspnet

只能输入某个区间数字

表达式^[12-15]$
描述匹配某个区间的数字
匹配的例子12,13,14,15
不匹配的例子

只能输入0和非0打头的数字

表达式^(0|[1-9][0-9]*)$
描述可以为0,第一个数字不能为0,数字中可以有0
匹配的例子12,10,101,100
不匹配的例子01,清清月儿,http://blog.csdn.net/21aspnet

只能输入实数

表达式^[-+]?/d+(/./d+)?$
描述匹配实数
匹配的例子18,+3.14,-9.90
不匹配的例子.6,33s,67-99

只能输入n位小数的正实数

表达式^[0-9]+(.[0-9]{n})?$以^[0-9]+(.[0-9]{2})?$为例
描述匹配n位小数的正实数
匹配的例子2.22
不匹配的例子2.222,-2.22,http://blog.csdn.net/21aspnet

只能输入m-n位小数的正实数

表达式^[0-9]+(.[0-9]{m,n})?$以^[0-9]+(.[0-9]{1,2})?$为例
描述匹配m到n位小数的正实数
匹配的例子2.22,2.2
不匹配的例子2.222,-2.2222,http://blog.csdn.net/21aspnet

只能输入非0的正整数

表达式^/+?[1-9][0-9]*$
描述匹配非0的正整数
匹配的例子2,23,234
不匹配的例子0,-4,

只能输入非0的负整数

表达式^/-[1-9][0-9]*$
描述匹配非0的负整数
匹配的例子-2,-23,-234
不匹配的例子0,4,

只能输入n个字符

表达式^.{n}$ 以^.{4}$为例
描述匹配n个字符,注意汉字只算1个字符
匹配的例子1234,12we,123清,清清月儿
不匹配的例子0,123,123www,http://blog.csdn.net/21aspnet/

只能输入英文字符

表达式^.[A-Za-z]+$为例
描述匹配英文字符,大小写任意
匹配的例子Asp,WWW,
不匹配的例子0,123,123www,http://blog.csdn.net/21aspnet/

只能输入大写英文字符

表达式^.[A-Z]+$为例
描述匹配英文大写字符
匹配的例子NET,WWW,
不匹配的例子0,123,123www,

只能输入小写英文字符

表达式^.[a-z]+$为例
描述匹配英文大写字符
匹配的例子asp,csdn
不匹配的例子0,NET,WWW,

只能输入英文字符+数字

表达式^.[A-Za-z0-9]+$为例
描述匹配英文字符+数字
匹配的例子1Asp,W1W1W,
不匹配的例子0,123,123,www,http://blog.csdn.net/21aspnet/

只能输入英文字符/数字/下划线

表达式^/w+$为例
描述匹配英文字符或数字或下划线
匹配的例子1Asp,WWW,12,1_w
不匹配的例子3#,2-4,w#$,http://blog.csdn.net/21aspnet/

密码举例

表达式^.[a-zA-Z]/w{m,n}$
描述匹配英文字符开头的m-n位字符且只能数字字母或下划线
匹配的例子
不匹配的例子

验证首字母大写
表达式/b[^/Wa-z0-9_][^/WA-Z0-9_]*/b
描述首字母只能大写
匹配的例子Asp,Net
不匹配的例子http://blog.csdn.net/21aspnet/

验证网址(带?id=中文)VS.NET2005无此功能
表达式

^http:([/w-]+(/.[/w-]+)+(//[/w-   .///?%&=/u4e00-/u9fa5]*)?)?$

描述验证带?id=中文
匹配的例子http://blog.csdn.net/21aspnet/,
http://blog.csdn.net?id=清清月儿
不匹配的例子

验证汉字
表达式^[/u4e00-/u9fa5]{0,}$
描述只能汉字
匹配的例子清清月儿
不匹配的例子http://blog.csdn.net/21aspnet/

验证QQ号
表达式[0-9]{5,9}
描述5-9位的QQ号
匹配的例子10000,123456
不匹配的例子10000w,http://blog.csdn.net/21aspnet/

验证电子邮件(验证MSN号一样)
表达式/w+([-+.']/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*
描述注意MSN用非hotmail.com邮箱也可以
匹配的例子aaa@msn.com
不匹配的例子111@1.   http://blog.csdn.net/21aspnet/

验证身份证号(粗验,最好服务器端调类库再细验证)
表达式^[1-9]([0-9]{16}|[0-9]{13})[xX0-9]$
描述
匹配的例子15或者18位的身份证号,支持带X的
不匹配的例子http://blog.csdn.net/21aspnet/

验证手机号(包含159,不包含小灵通)
表达式^13[0-9]{1}[0-9]{8}|^15[9]{1}[0-9]{8}
描述包含159的手机号130-139
匹配的例子139XXXXXXXX
不匹配的例子140XXXXXXXX,http://blog.csdn.net/21aspnet/

验证电话号码号(很复杂,VS.NET2005给的是错的)
表达式(不完美方案一  ((/(/d{3}/)|/d{3}-)|(/(/d{4}/)|/d{4}-))?(/d{8}|/d{7})
方案二 (^[0-9]{3,4}/-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^/([0-9]{3,4}/)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)    支持手机号但也不完美
描述

上海:02112345678    3+8位
上海:021-12345678
上海:(021)-12345678
上海:(021)12345678
郑州:03711234567     4+7位
杭州:057112345678     4+8位
还有带上分机号,国家码的情况
由于情况非常复杂所以不建议前台做100%验证,到目前为止似乎也没有谁能写一个包含所有的类型,其实有很多情况本身就是矛盾的。
如果谁有更好的验证电话的请留言

匹配的例子
不匹配的例子

验证护照
表达式

(P/d{7})|G/d{8})

描述验证P+7个数字和G+8个数字
匹配的例子
不匹配的例子清清月儿,http://blog.csdn.net/21aspnet/

验证IP
表达式

^(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])$

描述验证IP
匹配的例子192.168.0.1    222.234.1.4
不匹配的例子

验证域
表达式

^[a-zA-Z0-9]+([a-zA-Z0-9/-/.]+)?/.(com|org|net|cn|com.cn|edu.cn|grv.cn|)$

描述验证域
匹配的例子csdn.net   baidu.com  it.com.cn
不匹配的例子192.168.0.1

验证信用卡
表达式

^((?:4/d{3})|(?:5[1-5]/d{2})|(?:6011)|(?:3[68]/d{2})|(?:30[012345]/d))[ -]?(/d{4})[ -]?(/d{4})[ -]?(/d{4}|3[4,7]/d{13})$

描述验证VISA卡,万事达卡,Discover卡,美国运通卡
匹配的例子
不匹配的例子 

验证ISBN国际标准书号
表达式

^(/d[- ]*){9}[/dxX]$

描述验证ISBN国际标准书号
匹配的例子7-111-19947-2
不匹配的例子 

验证GUID全球唯一标识符
表达式

^[A-Z0-9]{8}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{12}$

描述格式8-4-4-4-12
匹配的例子2064d355-c0b9-41d8-9ef7-9d8b26524751
不匹配的例子 

验证文件路径和扩展名
表达式

^([a-zA-Z]/:|//)//([^//]+//)*[^//:*?"<>|]+/.txt(l)?$

描述检查路径和文件扩展名
匹配的例子E:/mo.txt
不匹配的例子 E:/ , mo.doc, E:/mo.doc ,http://blog.csdn.net/21aspnet/

验证Html颜色值
表达式

^#?([a-f]|[A-F]|[0-9]){3}(([a-f]|[A-F]|[0-9]){3})?$

描述检查颜色取值
匹配的例子#FF0000
不匹配的例子 http://blog.csdn.net/21aspnet/

相关文章:

连华为都在研究的计算机视觉,到底有多牛?

去年&#xff0c;华为在CCF-GAIR 大会上介绍了在人工智能领域的愿景&#xff0c;华为为了实现这个战略目标&#xff0c;从中梳理出深耕基础研究、打造全栈方案、投资开放生态和人才培养、解决方案增强、内部效率提升五大方向&#xff0c;以此打造无所不及的AI&#xff0c;构建万…

JS 点击弹出图片/ 仿QQ商城点击左右滚动幻灯片/ 相册模块,点击弹出图片,并左右滚动幻灯片...

1&#xff0c; 点击弹出图片 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns"http://www.w3.org/1999/xhtml"><head><meta ht…

Nginx+Tomcat实现反向代理与动静分离

1. 什么是动静分离 所谓动静分离就是通过nginx&#xff08;或apache等&#xff09;来处理用户端请求的静态页面&#xff0c;tomcat&#xff08;或weblogic&#xff09;处理动态页面&#xff0c;从而达到动静页面访问时通过不同的容器来处理。 2. 为什么做动静分离 Nginx处理静态…

白话经典算法系列之七 堆与堆排序

堆排序与高速排序&#xff0c;归并排序一样都是时间复杂度为O(N*logN)的几种常见排序方法。学习堆排序前&#xff0c;先解说下什么是数据结构中的二叉堆。二叉堆的定义二叉堆是全然二叉树或者是近似全然二叉树。二叉堆满足二个特性&#xff1a;1&#xff0e;父结点的键值总是大…

.NET2.0抓取网页全部链接【月儿原创】

.NET2.0抓取网页全部链接 作者&#xff1a;清清月儿 主页&#xff1a;http://blog.csdn.net/21aspnet/ 时间&#xff1a;2007.4.18 该方法经过对各大门户网站测试结果是抓取率100%&#xff01; 效果图 后台代码&#xff1a; using System;using System.Data;…

腾讯会议又一黑科技,屏蔽超过 200 种会议噪声是如何做到的?

作者 | 伍杏玲出品 | AI 科技大本营&#xff08;ID:rgznai100&#xff09;远程会议已成为我们常规的工作沟通方式&#xff0c;在线交流打破时间、空间的限制&#xff0c;给予我们便利之际&#xff0c;也屡遭尴尬&#xff1a;忘记静音&#xff0c;一边听会一边敲键盘&#xff0c…

zabbix之日志文件监控

一、日志item介绍 下面介绍zabbix另一个“重量级”的功能——日志文件监控&#xff0c;它最主要的是监控日志文件中有没有某个字符串的表达式&#xff0c;对应日志轮转与否&#xff0c;zabbix都支持。 在配置Item的时候&#xff0c;Type选择Zabbix agent (active)&#xff…

深度学习三巨头共同发文,聊聊深度学习的过去、现在与未来

作者|Yoshua Bengio,Yann LeCun,Geoffrey Hinton译者|香槟超新星出品|AI科技大本营(ID:rgznai100)人工神经网络领域的研究是基于对人类智能的观察而来&#xff1a;人类智能从高度并行的网络中产生&#xff0c;这些网络由结构相对简单的非线性神经元组成&#xff0c;通过调整连接…

ASP.NET2.0图片格式转换【月儿原创】

ASP.NET2.0图片格式转换 作者&#xff1a;清清月儿 主页&#xff1a;http://blog.csdn.net/21aspnet/ 时间&#xff1a;2007.4.20 说明&#xff1a;本文实现了图片格式随意转换&#xff08;下拉框选择&#xff09;&#xff1b;点击FileUpload立即显示图片&#xf…

org.apache.hadoop.fs-ChecksumException

当ChecksumFileSystem出现问题时抛出 1 package org.apache.hadoop.fs;2 3 import java.io.IOException;4 5 /** Thrown for checksum errors. */6 public class ChecksumException extends IOException {7 private long pos;8 public ChecksumException(String descriptio…

Linux下显示硬盘空间的两个命令

1.df -h &#xff0c;用于显示目前所有文件系统的可用空间及使用情况&#xff0c;示例如下&#xff1a; [rootmsg45 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_msg45-lv_root 50G 15G 33G 31% / tmpfs …

C#对Microsoft.VisualBasic My对象兰台妙选【月儿原创】

C#对Microsoft.VisualBasic My对象兰台妙选 作者&#xff1a;清清月儿 主页&#xff1a;http://blog.csdn.net/21aspnet/ 时间&#xff1a;2007.4.24 1.添加引用 2.引用Microsoft.VisualBasic 命名空间 3.所有的My对象应用皆出自以下类库&#xff0c;本文仅抛砖…

AIoT的发展路上,英特尔如何通过边缘计算掀起产业变革

你知道吗&#xff1f;到明年&#xff0c;仅我国的物联网连接规模将达到70亿&#xff0c;而全世界的人口也不过刚刚达到这个数字。物联网的爆发意味着什么&#xff1f;相信每个人都有着不同的答案&#xff0c;对于我国的14亿人口而言&#xff0c;即将全面到来的物联网红利不仅能…

Xbox One 游戏欣赏: Xbox Fitness 太极拳游戏

早就听说Xbox One中带有太极拳&#xff0c;这是我一直想练的&#xff0c;终于找到“死人定制”的师傅了。因为看书很难练&#xff0c;找不到联系场所&#xff0c;要么就要花价格不菲的学费。Xbox 360中的型可塑2012游戏中&#xff0c;包含了一个游戏章节就是Taiji&#xff0c;但…

Android美工坊:Selector选择器的使用

Android selector选择器可以让你切换自定义的背景风格&#xff0c;比如button、ListView、或者布局点击时候的背景切换等&#xff0c;都需要用到它 背景可以是自定义到颜色&#xff0c;或者图片资源 首先需要在你的res目录下创建drawable文件夹&#xff0c;然后在里面创建一个s…

C#中判断空字符串的3种方法性能分析【月儿原创】

C#中判断空字符串的3种方法性能分析 作者&#xff1a;清清月儿 主页&#xff1a;http://blog.csdn.net/21aspnet/ 时间&#xff1a;2007.4.28 3种方法分别是&#xff1a;string a"";1.if(a"")2.if(aString.Empty)3.if(a.Length0) 3种方法都是…

微软职位内部推荐-SDEII

微软近期Open的职位:Title: Software Development Engineer 2Group: Bing Client, Search Technology Center Asia, BingWork Location: Beijing/Suzhou, China Group OverviewSearch Technology Center Asia (STCA)STCA was founded in year 2005 and is now starting the sec…

WAIC剪影:AI的未来,关乎星辰大海

“天文学&#xff0c;是像数学一样的基础学科&#xff0c;而越是基础学科&#xff0c;就越难直接应用。”“我们没有想过盈利&#xff0c;这些技术目前来看也不太可能直接应用到其他领域。”“不管是优图还是腾讯公司层面&#xff0c;不是做的每件事情都要考虑它的经济价值或者…

用Swift实现一款天气预报APP(三)

这个系列的目录&#xff1a; 用Swift实现一款天气预报APP&#xff08;一&#xff09; 用Swift实现一款天气预报APP&#xff08;二&#xff09; 用Swift实现一款天气预报APP&#xff08;三&#xff09; 通过前面的学习&#xff0c;一个天气预报的APP已经基本可用了。至少可以查看…

asp.net2.0学习历程 菜鸟到中级程序员的飞跃【月儿原创】

asp.net2.0学习历程 菜鸟到中级程序员的飞跃 --30本好书点评 作者&#xff1a;清清月儿 主页&#xff1a;http://blog.csdn.net/21aspnet/ 时间&#xff1a;2007.5.16 学历历程 如果你是一个菜鸟或者自认为初学者那么本文非常适合你&#xff1b; 不能说这30本书…

了解黑客的关键工具---揭开Shellcode的神秘面纱

2019独角兽企业重金招聘Python工程师标准>>> ref: http://zhaisj.blog.51cto.com/219066/61428/ 了解黑客的关键工具---揭开Shellcode的神秘面纱 对于初期接触网络安全的人来说&#xff0c;Shellcode是很神秘的东西&#xff0c;对于网络攻击过程中的嗅探信息、漏洞…

2021年移动云API应用创新开发大赛火热开启!

每一位开发者&#xff0c;都是这个时代宝贵的财富2021年移动云API应用创新开发大赛以“创新云转型&#xff0c;智慧云服务”为主题旨在激发开发者创新动力丰富云计算应用场景与移动云携手探索数智未来给社会带来更多智慧创新体验大赛官方报名通道已开启您可通过下方二维码报名参…

Android 多媒体综述

Android 多媒体综述 多媒体系统是Android中最为庞大的系统&#xff0c;涉及了硬件抽象层、编解码、OpenCore多媒体框架、Android多媒体框架、Java层接口多方面的内容。一、引言本系列内容都是在Android应用层面的&#xff0c;将会分为Camera、Audio、Video三部分进行讲述。另外…

asp.net2.0导出pdf文件完美解决方案【月儿原创】

asp.net2.0导出pdf文件完美解决方案 作者&#xff1a;清清月儿 主页&#xff1a;http://blog.csdn.net/21aspnet/ 时间&#xff1a;2007.5.28 PDF简介&#xff1a;PDF&#xff08;Portable Document Format&#xff09;文件格式是Adobe公司开发的电子文件格式。这…

MYSQL 部分事务

MYSQL 中通过 savepoint 的方式来实现只提交事务的一部分。 step 1 : savepoint savepoint_name;、 做标记 step 2 :rollbak to savepoint savepoint_name;回滚到标记点 setp 3 :release savepoint savepoint_name;解除标记 -------------------------------------------------…

二维已经 OUT 了?3DPose 实现三维人体姿态识别真香 | 代码干货

作者|李秋键出品|AI科技大本营(ID:rgznai100)引言人体姿态估计是计算机视觉领域很多研究工作的基础&#xff0c;也是研究的热点问题&#xff0c;在行为识别、人机交互、姿态跟踪等领域有着广泛的应用前景。按照人体姿态维度的差异&#xff0c;可以将人体姿态估计任务分为二维人…

python学习------tab补全

python学习------tab补全 python也可以进行tab键补全 123456789101112131415161718#!/usr/bin/env python# -*- coding: utf-8 -*-# python startup fileimport sys import readline import rlcompleter import atexit import os # tab completionreadline.parse_and_bind(tab:…

asp.net的Ajax学习进阶

asp.net的Ajax学习进阶 作者&#xff1a;清清月儿 主页&#xff1a;http://blog.csdn.net/21aspnet/ 时间&#xff1a;2007.6.3 1.什么是Ajax? 2006年忽如一夜春风来&#xff0c;众多涉及到Web开发的站点都在谈Ajax&#xff0c;那么到底什么是Ajax呢&#xff1f…

Windows下FFmpeg高速入门

本系列文章导航 Windows下FFmpeg高速入门 ffmpeg參数解释 mencoder和ffmpeg參数具体解释&#xff08;Java处理视频&#xff09; Java 生成视频缩略图(ffmpeg) 使用ffmpeg进行视频文件转换成FLV整理 java 视频处理 mencoder java 视频处理 ffmpedmencoder Windows下FFmpeg高速入…

“香山”处理器产生背后的逻辑

作者 | 老石谈芯的老石来源 | 老石谈芯在最近召开的RISC-V中国峰会上&#xff0c;中科院计算所的包云岗研究员团队正式发布了名为“香山”的开源高性能RISC-V处理器。前不久我有幸和包老师就这个事情做了一次深度的交流&#xff0c;我们聊了关于RISC-V、还有“香山”处理器的前…