前言:在前端页面使用中,遇到日期格式的验证,开始使用了一款表单控件验证,但是不兼容!!而且使用起来还受到很大约束,所以就决定自己写原生js。为了完成日期格式的验证,第一步,当然是学会使用正则表达式。以前都是直接复制使用,这次理解原理,自己原生写。
接上一篇:本篇总结正则表达式的规则。
一、使用正则表达式描述模式
1、连接操作
当我们写出AB时,就指定了一种语言{AB}。它含有一个由两个字符组成的字符串,由A和B连接而成。
示例:
AB指定语言{AB}
“AB”。
2、或操作
或操作可以在模式中指定多种可能的匹配。如果我们再两种选择之间制定了一个或运算符,那么它们都将属于同一种语言。我们用竖线符号“|”表示这个操作。连接操作的优先级高于或操作。
示例:
A|B|E|I|O指定语言{A,B,E,I,O}
“A”或者“B”或者“E”或者“I”或者“O”。
3、闭包操作
闭包操作可以将模式的部分重复任意的次数。模式的闭包是由将模式和自身连接任意多次(包括零次)而得到的所有字符串所组成的语言。我们将“*”标记在需要被重复的模式之后,以表示闭包。闭包操作的优先级高于连接操作。
示例:
AB*指定的语言由一个A和0个或多个B的字符串组成
“A”或者“ABBBBBBBBBB”或者“AB”或者……。
A*B指定的语言由0个或多个A和一个B的字符串组成
“B”或者“AAAAAAAAAAAAAAAAAAAAAB”或者“AB”或者……。
4、括号
我们使用括号来改变默认的优先级顺序。
示例:
C(AC|B)D指定的语言是{CACD,CBD}
“CACD”或者“CBD”。
二、缩略写法
1、字符集描述法
(1)点“.”是一个能够表示任意字符的通配符。
(2)包含在方括号中的一系列字符表示这些字符中的任意一个。
(3)这一系列字符可以由一个范围来表示。
(4)如果开头字符为“^”,这个方括号表示的就是任意非该括号内的字符。
请见下表:
2、闭包的简写
闭包运算符表示将它的操作数复制任意多次。在实际应用中,我们希望能够灵活指定重复的次数,或者是次数的范围。
(1)用“+”(加号)表示至少复制一次。
(2)用“?”(问号)表示至少重复0次或者1次。
(3)用写在“{}”(花括号)内的数或者范围来指定重复的次数。
请见下表:
3、转义序列
某些字符,例如“\”、“.”、“|”、“*”、“(”和“)”,都是用来构造正则表达式的元字符。我们使用以反斜杠开头的转义序列来将元字符和字母表中的字符区别开来。一个转义序列可以是一个“\”加上单个元字符(这就是表示这个字符本身)。例如,“\\”表舅的就是“\”。其他转义序列表示了特殊字符和空白字符。例如,“\t”表示一个制表符,“\n”表示一个换行符,“\s”表示任意空白字符。
如有好的建议,可留言或发至笔者邮箱:fzb_xxzy@163.com