在学习javascript中正则是经常使用的,在正则中的特殊符号,需要转义等,下面对正则中的转义和特殊字符进行介绍
首先是元字符,意思是,在使用这些字符时,必须使用转义字符,负责会出错.
元字符有:()[]{}\^$|?*
任何时候用在正则表达式中用到以上字符必须进行转义.
举例:假如匹配?这个字符
var re = /\?/;
或者
var re = new RegExp("\\?");
正则中的特殊符号:
注意到第二个正则,当用到\的时候,多用了\来进行转义\ 最后达到两个\\,叫做双重转义
其次 特殊符号
在则会功能则中可以使用ASCII代码也可以用Unicode代码.
当用字符用十六进制表示时,在字符签名必须加上\x
当用八进制时,在紫府前必须加上 \
当用Unicode编码表示是必须加上 \
还有其它一些特殊符号
字符 说明
\t 制表符
\n 换行符
\r 回车符
\a 换页符
\e alert字符
\cX escape字符
\b 与X相对应的字符
\v 回退字符
\0 空字符
如果用RegExp构造函数来使用它们,则必须使用双重转义.
以上就是正则中的特殊符号
正则表达之字符类:
先说一下字符类的意思,字符类是用于测试的字符组合.字符类是放到中括号[]中的,可以有效的告诉正则去匹配.在字符类又分为五个简单的类,分别说一下
1.简单类
简单类就是你想要匹配的字母组
举例说明
var _class = /[abc]de/gi;
上面的一个字符类就是一个简单的类,可以匹配ade,bde,cde.三种,后面的g和i分别是全局和不区分大小写.
再简单类中还可以使用unicode编码
var _class = /[a\u0062c]de/gi;
这个跟上面的一样,可以匹配ade,bde,cde.三种,后面的g和i分别是全局和不区分大小写.
2.负向类
负向类就是你要排除的字母,用上尖号(^)表示负向类
举例//www.forasp.cn 转载请注明
var _class = /[^abc]de/gi;
用了负向类^就排除了a,b,c三个开头的字符串,即 ade,bde,cde都不匹配
3.范围类
范围类即指定从一个字符到另一个字符的范围,用中杠(-)表示.
举例
var _class = /[a-c]de/gi;//这就是表示从a到c,即,abc都匹配
上面的就匹配了ade,bde,cde.三种.也可以加上负向类表示不匹配
var _class = /[^a-c]de/gi;//这就是表示从a到c,即,abc都不匹配
4.组合类
组合类是有几种其它类的组合而合成的字符类.
举例
var _class = /[1-9a-c]/gi;
上面的表达式就是1-9或者a-c均能匹配,列举1,2,3,4,5,6,7,8,9,a,b,c
在此 要注意的是字符内部类之间不能有空格.还有不能有交叉.
5.预定义类//www.forasp.cn 转载请注明
预定义类就是将复杂的组合类预定义成特定的代码.
列举了javascrip中的预定义类
代码 等同于 匹配
. [^\n\r] 出了换行和回车以外的任何字符
\d [0-9] 数字
\D [^0-9] 非数字
\s [ \t\n\xB\f\r] 空白字符
\S [^ \t\n\xB\f\r] 非空白字符
\w [a-zA-Z_0-9] 单词字符,包括字母下划线和数字
\W [^a-zA-Z_0-9] 非单词字符
以上就是常用的正则表达式的字符类,常用谨记
====================
正则表达之量词
正则表达式中的量词,规定了特定的字符串出现的次数.当指定某个模式应当出现的出售时,可以指定硬性数量.
可以说分为两类量词
1.简单量词,如下标识
代码 描述
? 出现零次或者一次
* 出现任意次数
+ 至少出现一次
{n} 一定出现n次
{n,m} 至少出现n次最多出现m次
{n,} 至少出现n次
举例说明以上的标识,gi是全局部分大小写,下面就不说gi了.
var foraspcn = /[ab]?c/gi;//匹配 c,ac,bc
var foraspcn = /[ab]*c/gi;//匹配 c,aac,bbc...
var foraspcn = /[ab]+c/gi;//匹配 ac,bc,aac,bbc..
var foraspcn = /[ab]{1}c/gi;//匹配 ac,bc
var foraspcn = /[ab]{1,2}c/gi;//匹配 ac,bc,aac,bbc
var foraspcn = /[ab]{1,}c/gi;//匹配 ac,bc,aac,bbc...
看看看懂没有,有的时候有的是相等的比如
?就等于{0,1}
*等于{0,}
+等于{1,}
2.贪婪的,惰性的,支配性的量词
首先解释一下三种量词.
贪婪量词就是先看整个字符串师傅匹配,如果没有,则去掉字符串最后一个字符,再次匹配.一直到发现最后一个匹配或者字符串不剩下任何字符.目前的量词都是贪婪的.
惰性量词是首先看第一个字符是否匹配,如果单独这一个字符不够,则读入下一个,与组成两个字符去匹配,如果没有发现再次读取下一个字符,直到发现匹配或者整个字符串都没有匹配.惰性和贪婪正好相反.
支配量词擦好难过时匹配整个字符串,如果不匹配则不再尝试.支配量词就是整体匹配一次.$hidden$
贪婪的,惰性的,支配性的量词 表如下
贪婪的 惰性的 支配性 描述
? ?? ?+ 零次或者一次出现
* *? *+ 零次或者多次出现
+ +? ++ 至少一次出现
{n} {n}? {n}+ 正好n次出现
{n,m} {n,m}? {n,m}+至少n次出现,至多m次出现
{n,} {n,}? {n,}+ 至少n次出现
以上就是正则中量词的相关内容
posted on 2010-12-30 15:40
David1228 阅读(448)
评论(0) 编辑 收藏 所属分类:
正则