javascript与正则表达式基础一

1、  正则表达式元字符:

(       {     {     /      ^      $     |      }     ?      *     +     .

2、  特殊字符:

/t      制表符

/n     换行符

/r      回车符

/f      换页符

/a      alert字符

/e      escape字符

/cX   X相对应的控制字符

/b     回退字符

/v     垂直制表符

/0     空字符

注意:如果通过RegExp构造函数来使用它们,则都必须进行双重转义。

3、  字符类:

3.1简单类

例:假设想匹配”bat”,”cat”,”fat”。使用简单类就可以方便的解决问题:

var sToMatch=”a bat,a cat,a fat bat,a fat cat”;

var reBatCatRat=/[bcf]at/gi;

var arrMatches= sToMatch.match(reBatCatRat);

其中arrMatches数组现在存放了这些值:”bat”,”cat”,”fat”,”bat”,”fat”,”cat”

3.2负向类(negation class

例,同上,如果只想获取包含at但不能以bc开头单词。

var sToMatch=”a bat,a cat,a fat bat,a fat cat”;

var reBatCatRat=/[^bc]at/gi;

var arrMatches= sToMatch.match(reBatCatRat);

其中arrMatches数组现在存放了这些值:”fat”,”fat”

3.3范围类(range class

例,要测试的字符恰好按照字符编码的顺序排列的时候,范围类就很管用。

var sToMatch=”n1,n2,n3,n4,n5,n6,n7,n8,n 9” ;

var reBatCatRat=/n[1-4]/gi;

var arrMatches= sToMatch.match(reBatCatRat);

其中arrMatches数组现在存放了这些值:”n 1” ,”n 2” ,”n 3” ,”n 4”

3.4组合类(combination class

如:[a-m1-4/n]

主意:在内部的类之间不要有空格。

Javascript/ECMAScript不支持某些其他正则表达式实现中的联合类(union class)和交叉类(intersection class)。这意味着不能有类似[a-m[p-z]]或者[a-m[^b-e]之类的模式出现。

3.5预定义类

如下表:

代码

等同于

匹配

.

[^/n/r]

除了换行和回车之外的任意字符

/d

[0-9]

数字

/D

[^0-9]

非数字字符

/s

[/t/n/x0B/f/r]

空白字符

/S

[^/t/n/x0B/f/r]

非空白字符

/w

[a-zA-Z_0-9]

单词字符

/W

[^a-zA-Z_0-9]

非单词字符

4、  量词(quantifier

可以指定某个特定模式出现的次数。

4.1简单量词

代码

描述

?

出现零次或一次

*

出现零次或多次(任意次)

+

出现一次或多次(至少出现一次)

{n}

一定出现n

{n,m}

至少出现n次但不超过m

{n,}

至少出现n

4.2贪婪的、惰性的、支配性的量词

贪婪

惰性

支配

描述

?

??

?+

出现零次或一次

*

*?

*+

出现零次或多次(任意次)

+

+?

++

出现一次或多次(至少出现一次)

{n}

{n}?

{n}+

一定出现n

{n,m}

{n,m}?

{n,m}+

至少出现n次但不超过m

{n,}

{n,}?

{n,}+

至少出现n

注意:浏览器对支配量词的支持还很不完善,IEOpera不支持支配量词,如果要用它,就会抛出一个错误。Mozilla不会产生错误,但是它会将支配量词看着实贪婪的。

 

另外:还有一些复杂模式:如分组,反向应用,候选,非捕获性分组,前瞻,边界,多行模式等

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值