`

正则表达式 -- 邮件地址验证解析[转]

    博客分类:
  • JS
 
阅读更多

      正则表达式(regular expression, 常常缩写为RegExp) 是一种用特殊符号编写的模式,描述一个或多个文本字符串。使用正则表达式匹配文本的模式,这样脚本就可以轻松的识别和操作文本。其实,正则表达式是值得大 家花时间学习的。正则表达式不仅在javaScript 中有用,在其他许多地方也可以使用正则表达式,例如其他编程语言(比如Perl,Java,C#,Python 和PHP ),Apache 配置文件以及BBEdit 和TextMate 等文本编辑器。甚至Adobe Dreamweaver 和Microsoft Word( 在一定程度上) 使用正则表达式也可以实现更强大的搜索和替换。

下面是一个验证电子邮件的正则表达式

var re = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/ ;

下面我们开始剖析这个正则表达式

re 是一个变量, 用来存储右边的正则表达式,在javascript 中,声明变量使用Var 关键字。

正则表达式的阅读顺序是从左向右的

正则表达式总是以(/) 开头和结尾,斜杠之间的所有内容都是正则表达式的组成部分。

脱字符(^) 表示我们要使用这个表达式来检查以特定字符串开头的字符串。如果去掉脱字符,那么即使字符串开头有一堆垃圾字符,电子邮件地址也可能被认为是有效的。

表达式\w 表示任意单一字符,包括a~z 、A~Z 、0~9 或下划线。电子邮件必须这些字符之一开头。

加号+ 表示我们要寻找前面条目的一次或多次出现。

园括号() 表示一个组,这意味着后面要引用圆括号中的所有内容,所以现在将它们放在一个组中。

      放括号[] 用来表示可以出现其中的任意一个字符。在这个示例中,方括号内包含字符\.- 。我们希望允许用户输入点号或连字符,但是点号对于正则表达式有特殊的意义,所以需要在它前面加上反斜杠\, 在特殊字符前加反斜杠表示“对字符转义”,经转义后的字符表示其本身意义。因为有方括号,输入字符串在这个位置可以有一个点号或一个连字符,但是两种不能 同时存在。

      问号?表示前面的条目可以出现一次或不出现。所以电子邮件地址的第一部分中可以有一个点号或一个连字符,也可以没有。

      在?后面,再次使用\w+ ,表示点号或连字符后面必须有其他字符。

在()后面出现的* 号,表示前面的条目可以出现零次或多次。所以圆括号中的内容可以出现零次或多次。

@ 字符代表其本身,没有任何其他意义,这个字符位于电子邮件地址和域名之间。

@ 字符后再次出现\w+ ,表示@ 后必须出现字符。在此之后,再次出现([\.-]?\w+)*, 表示电子邮件地址的后缀中允许出现点号或连字符。

      然后,在一对圆括号中建立另一个组(\.\w{2,3}), 表示我们希望找到一个点号,后面跟一些字符。在这个示例中,花括号中的数字表示前面的条目可以出现2 到3 次。在这个组的后面是一个+ 号,表示前面的条目(这个组)必须出现一次或多次。这会匹配.com 或.edu 之类的,也与ox.ac.uk 匹配。

      最后,正则表达式的末尾是一个美元符号$ ,表示匹配的字符串必须在这里结束。斜杠结束正则表达式。

 

本文转自http://www.cnblogs.com/Dannier/archive/2010/11/06/RegExp.html

 

分享到:
评论

相关推荐

    Delphi 10.4 最新版正则表达式(TRegExpr)源码

    这对于输入形式的用户输入验证特别有用-验证电子邮件地址等。您还可以从网页或文档中提取电话号码,邮政编码等,在日志文件中搜索复杂的模式,然后您就可以想象得到。无需重新编译程序即可更改规则(模板)。...

    python正则表达式.zip

    使用正则表达式编写一些逻辑验证非常方便,例如电子邮件地址格式的验 证。正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符)操作 的一种逻辑公式,就是用事先定义好的一些特定字符、及...

    精通正则表达式基于.NET ASP PHP JSP JavaScript

    RegexApplication/Default.aspx 正则表达式类的应用 RegexApplication/GetPageHtmlData.aspx 获取网页的内容 第10章(/10/) ASPNETValidator/Compare.aspx 比较验证 ASPNETValidator/...

    精通正则表达式~~~

    精通正则表达式第三版 搜集于网络 前言..........I 第1章:正则表达式入门.... 1 解决实际问题... 2 作为编程语言的正则表达式... 4 以文件名做类比... 4 以语言做类比... 5 正则表达式的知识框架... 6 对于...

    正则表达式

    正则表达式中的特殊字符 字符 含意 \ 做为转意,即通常在"\"后面的字符不按原来意义解释,如/b/匹配字符"b",当b前面加了反斜杆后/\b/,转意为匹配一个单词的边界。 -或- 对正则表达式功能字符的还原,如"*"匹配它...

    正则表达式的概述级详细例题解析

    正则表达式的概述和详细的例题及解析,让你一目了然,用于可加密等技术比较方便,(1)验证字符串是否符合指定特征,比如验证是否是合法的邮件地址。 (2)用来查找字符串,从一个长的文本中查找符合指定特征的字符...

    python-17-正则表达式.zip

    使用正则表达式编写一些逻辑验证非常方便,例如电子邮件地址格式的验 证。正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符)操作 的一种逻辑公式,就是用事先定义好的一些特定字符、及...

    Python正则表达式

    使用正则表达式编写一些逻辑验证非常方便,例如电子邮件地址格式的验 证。 正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符)操作 的一种逻辑公式,就是用事先定义好的一些特定字符、及...

    QRegExp的详细解析

    正则表达式可以用来:(1)验证字符串是否符合指定特征,比如验证是否是合法的邮件地址。(2)用来查找字符串,从一个长的文本中查找符合指定特征的字符串,比查找固定字符串更加灵活方便。(3)用来替换,比普通的...

    email-addresses:RFC 5322电子邮件地址解析器

    放下您的正则表达式并使用此解析器! 该库不会验证电子邮件地址-如果不发送电子邮件,我们就无法做到这一点。 但是,它尝试使用RFC 5322中指定的(相当自由的)语法来解析地址。您可以使用它来检查用户输入是否看...

    talk-on-overusing-regular-expressions:2013年匹兹堡科技节演讲

    停止过度使用正则表达式!...提供的材料运行代码,带有测试套件ScalaRubyJavaScript Python Perl幻灯片PDF 观看演示印刷品讲义免费的电子邮件验证API! 2013-07-26:我看到了有关免费的公告。 它使用递归下降解析器。

    JavaScript对象验证库js-validator.zip

    添加验证器使用add方法为Validator添加验证器,第一个参数为验证器名称,第二个参数为验证方法,可以为正则表达式对象或者函数。当验证方法为函数时,其第一个参数必须为当前验证域的值,后面的参数根据需求而定,...

    phone:Ruby库用于电话号码解析,验证和格式化

    电话 解析,验证和创建电话号码[电子邮件](elskwid.net上的mailto:don)版本本文档适用于未发布的开发分支。 当前版本: 电流稳定度: 描述Ruby库,用于电话号码解析,验证和格式化。特征自动国家和地区代码检测...

    JavaScript基础教程第8版

    7.1 用正则表达式验证电子邮件地址 131 7.2 验证文件名 136 7.3 提取字符串 139 7.4 格式化字符串 141 7.5 对字符串进行格式化和排序 144 7.6 对字符串进行格式化和验证 146 7.7 使用正则表达式替换...

    Clever_Internet_Suite_v_9.2.0.0

    BounceChecker - 更新后的组件通过使用正则表达式语法从邮件中提取所有电子邮件地址,分析邮件内容,并指示邮件是否包含未送达报告。 重新命名和重新组织编码器组件的编码/解码方法,以改善界面和可用性。 下载程序...

    易语言程序免安装版下载

    易语言5.1 相对于易语言5.0更新说明: ... 修改XML解析支持库,增加写出CDATA数据功能,解决解析XML时错误的丢弃换行和TAB字符的BUG,解决读取节点值时对CDATA数据进行转义处理的BUG。 20. 修改扩展界面支持库...

    ASP.NET通用辅助类库

    ASP.NET通用辅助类库适合.net framework 4.0版本 通用库含有: FileHelper(文件操作辅助类) JsonHelper(Json解析操作类) Mail(发送电子邮件类) MD5Pwd (MD5加密方法) RegularExpression(正则表达式验证类)...

    Ajax完全自学手册(PPT)

    ValidateEmail.htm 邮件地址验证 第11章 11.1.1 前台脚本与后台Ajax处理页面实现的ASP.NET Ajax应用 11.1.2 前台脚本与后台HttpHandler类实现的ASP.NET Ajax应用 11.1.3 CallBack实现ASP.NET Ajax应用 ...

Global site tag (gtag.js) - Google Analytics