在我们写页面时,往往需要对表单的数据比如账号、身份证号等进行验证,而最有效的、用的最多的便是使用正则表达式来验证。那什么是正则表达式呢?
正则表达式(Regular Expression)是用于描述一组字符串特征的模式,用来匹配特定的字符串。它的应用非常广泛,特别是在字符串处理方面。其常见的应用如下:
验证给定的字符串或子字符串是否符合指定的特征,
例如,验证是否是合法的邮件地址、验证是否是合法的HTTP地址等等。查找符合指定特征
的字符串,这样比查找固定字符串更加灵活。第一部分:正则表达式之工具
正所谓工欲善其事必先利其器! 所以我们需要知道下面几个主要的工具:
第二部分:正则表达式之元字符
正则表达式中元字符恐怕是我们听得最多的了。元字符(Metacharacter)是一类非常特殊的字符,它能够匹配一个位置或者字符集合中的一个字符。如.、\w等都是元字符。
刚刚说到,元字符既可以匹配位置,也可以匹配字符,那么我们就可以通过此来将元字符分为匹配位置的元字符和匹配字符的元字符。
A 匹配位置的元字符---^、$、\b
即匹配位置的元字符只有^(脱字符号)、$(美元符号)和\b这三个字符。分别匹配行的开始、行的结尾以及单词的开始或结尾。它们匹配的都只是位置。
1.^匹配行的开始位置
如^zzw匹配的是以'zzw'为行开头的'zzw'(注意:我这里想要表达的是:尽管加了一个^,它匹配的仍是字符串,而不是一整行!) ,如果zzw不是作为行开头的字符串,则它不会被匹配。
2.$匹配行的结尾位置
如zzw$匹配的是以'zzw'为行结尾的'zzw'(同样,这里$只是匹配的一个位置,那个位置是零宽度,而不是一整行),如果zzw不是作为行的结尾,那么它不会被匹配。
于是结合^和$我们就不难猜测^zzw$匹配的是某行中只有zzw这个字符串了。
而^$匹配的则是一个空行,这个空行中不包含任何字符串。
3. \b匹配单词的开始或结束
如 \bzzw匹配的是zzw之前是空格符号、标点符号或换行符号的zzw(注意:但\b匹配的仅是一个零宽度的位置,而不会匹配空格、标点符号或换行符号)。
而zzw\b匹配的是zzw之后是空格符号、标点符号或换行符号的zzw(同样,\b匹配的是一个零宽度的位置)。
显然 \bzzw\b匹配的就是zzw的前后必须是空格符号、标点符号或换行符号的zzw。
B 匹配字符的元字符---. 、\w、\W、\s、\S、\d、\D
即匹配字符的元字符共有七个。
其中.(点号)表示匹配除换行符之外的任意字符;
\w 匹配单词字符(不仅仅是字母,还有下划线、数字和汉字);\W匹配任意的非单词字符(注意,与\w刚好相反);
\s匹配的是任意的空白字符(如空格、制表符、换行符、中文全角空格等);
\S匹配的是任意的非空白字符(注意:刚好和\s相反);
\d匹配任意的数字;
\D匹配任意的非数字字符(注意:刚好和\d相反)。
例子如下所示:
上面的四个例子从左到右依次表示:
注意:其中的a并不是元字符,就是一个普通的字符,我们称之为字符串字面值(string literal)-所谓字符串字面值,就是字面上看起来是什么就是什么)
\
b\w\w\w\d\d\d\d\D\b表示匹配以3个字母字符开始后面紧跟着四个数字字符且最后一个不是数字字符的单词。第三部分:正则表达式之文字匹配
这一部分我们将通过字符类、字符转义、反义这几个部分来学习。
A、字符类
字符类是正则表达式中的“迷你”语言,可以在中定义。
最简单的字符类可以由和几个简单的字母组成。比如[aeiou]可以匹配aeiou五个字母中的任意一个。[0123456]可以匹配0123456这七个数字中的任意一个。而
联系客服