RegularExpression(正则表达式)之邮箱验证
regex匹配 正则表达式(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 次。在这个组的后⾯是⼀个+ 号,表⽰前⾯的条⽬(这个组)必须出现⼀次或多次。这会匹配 或.edu 之类的,也与ox.ac.uk 匹配。
最后,正则表达式的末尾是⼀个美元符号$ ,表⽰匹配的字符串必须在这⾥结束。斜杠结束正则表达式。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论