正则表达式基本语法.pdf
文本预览下载声明
正则表达式基本语法
⼀、正则表达式基本语法
两个特殊的符号^和$。他们的作⽤是分别指出⼀个字符串的 始和结束。例⼦如
下:
^The:表示所有以The开始的字符串 (There,The cat等);
of despair$:表示所以以of despair结尾的字符串;
^abc$:表示开始和结尾都是abc的字符串——呵呵,只有abc⾃⼰了;
notice:表示任何包含notice的字符串
象最后那个例⼦,如果你不使⽤两个特殊字符,你就在表⽰要查找的串在被查找串的
任意部分——你并不把它定位在某⼀个顶端。
其它还有*,+和?这三个符号,表⽰⼀个或⼀序列字符重复出现的次数。它们分别
表⽰“没有或更多”,“⼀次或更多”还有“没有或⼀次”。下⾯是⼏个例⼦:
ab*:表示⼀个字符串有⼀个a后⾯跟着零个或若⼲个b (a, ab, abbb,……
ab+:表示⼀个字符串有⼀个a后⾯跟着⾄少⼀个b或者更多;
ab?:表示⼀个字符串有⼀个a后⾯跟着零个或者⼀个b;
a?b+$:表示在字符串的末尾有零个或⼀个a跟着⼀个或⼏个b
你也可以使⽤范围,⽤⼤括号括起,⽤以表⽰重复次数的范围。
ab{2}:表示⼀个字符串有⼀个a跟着2个b (abb);
ab{2,}:表示⼀个字符串有⼀个a跟着⾄少2个b;
ab{3,5}:表示⼀个字符串有⼀个a跟着3到5个b
请注意,你必须指定范围的下限 (如:{0,2}⽽不是{,2})。还有,你可能注意到
了,*,+和
?相当于{0,},{1,}和{0,1}。
还有⼀个¦,表⽰“或”操作:
hi¦he o:表示⼀个字符串⾥有hi或者he o;
(b¦cd)ef:表示bef或cdef;
(a ¦b)*c:表示⼀串ab混合的字符串后⾯跟⼀个c;
.可以替代任何字符:
a.[0-9]:表示⼀个字符串有⼀个a后⾯跟着⼀个任意字符和⼀个数字;
^.{3}$:表示有任意三个字符的字符串 (⻓度为3个字符);
⽅括号表示某些字符允许在⼀个字符串中的某⼀特定位置出现:
[ab]:表示⼀个字符串有⼀个a或b (相当于a ¦b);
[a-d]:表示⼀个字符串包含⼩写的a到d中的⼀个 (相当于a ¦b¦c¦d或者[a
^[a-zA-Z]:表示⼀个以字⺟开头的字符串;
[0-9]%:表示⼀个百分号前有⼀位的数字;
,[a-zA-Z0-9]$:表示⼀个字符串以⼀个逗号后⾯跟着⼀个字⺟或数字结束
你也可以在⽅括号⾥⽤^表⽰不希望出现的字符,^应在⽅括号⾥的第⼀位。
(如:%[^a-zA-Z]%表
⽰两个百分号中不应该出现字母)。
为了逐字表达,你必须在^.$()¦*+?{\这些字符前加上转移字符\。
请注意在⽅括号中,不需要转义字符。
⼆、正则表达式验证控制⽂本框的输⼊字符类型
1.只能输⼊数字和英⽂的:
input onkeyup=va ue=va ue.rep ace(/[\W]/g,) onbeforepaste
2.只能输⼊数字的:
input onkeyup=va ue=va ue.rep ace(/[^\d]/g,) onbeforepaste
3.只能输⼊全⾓的:
input onkeyup=va ue=va ue.rep ace(/[^\uFF00-\uFFFF]/g,) onbe
4.只能输⼊汉字的:
input onkeyup=va ue=va ue.rep ace(/[^\u4E00-\u9FA5]/g,) onbe
三、正则表达式的应⽤实例通俗说明
*******************************************************************************
//校验是否全由数字组成
/^[0-9]{1,20}$/
^ 表示打头的字符要匹配紧跟^后⾯的规则
$ 表示打头的字符要匹配紧靠$前⾯的规则
[ ] 中的内容是可选字符集
[0-9] 表示要求字符范围在0-9之间
{1,20}表示数字字符串⻓度合法为1到20,即为[0-9]中的字符出现次数的范围是1到20
/^ 和 $/成对使⽤应该是表示要求整个字符串完全匹配定义的规则,⽽不是只匹配字符
*******************************************************************************
//校验登录名:只能输⼊5-20个以字⺟开头、可带数字、“
显示全部