教你如何使用JavaScript正则表达式

来源:岁月联盟 编辑:exp 时间:2012-07-11

主题:JavaScript正则表达式

定义正则表达式:

Var reg_pattern = new RegRxt(“a/d”); //意思是 a后面跟着有数字

Var reg_pattern = /a/d/ ;

String对象相关的正则表达式方法

名称

说明

例子

Macth(regExp)

指定的正则表达式来搜索字符串,如果找到函数返回一个数组,没有找到返回Null

test.html

Replacre(regExp,replaceText)

将原字符串中与正则表达式regExp匹配的子字符串全部替换为replaceText,返回新的字符串。

test.html

Search(regExp)

搜索字符串,与macth(regExp)不同的是,只返回第一次匹配出现的位置索引,否则返回-1

字符类:

字符列表:在方括号内指定一个或者多个字符组成的字符列表,与字符列表中任意字符

匹配,都被认为是匹配的,例如 [abc],表示匹配a 或者 b 或者 c 中的任意一个。但每次匹配只能匹配列表中的一个字符,而不是多个

反向列表:反向列表指匹配列表中指定字符以外的所有字符。反向列表通过在列表前加

“^” 符号进行定义。例如 [^abc] 表示匹配 a 、b 、c 字符以外的所有字符。

字符范围:对于连续的字符列表,例如[1234567] 或者 [abcdefg] 这类,可以采用简单

的方式表示,这种方式称为字符范围。字符范围用 “-” 符号将起始字符与结束字

符连接起来,表示起始字符与结束字符之间的所有字符。例如:[a-z] 表示a~z之

间的全部小写字符

反向范围:在字符前面加上 ”^” 符号,则表示匹配该字符范围以外的任意字符。

与定义字符类

字符类

含义

·

匹配除换行符/n和回车字符之外的任何单个字符,等效于[^/n/r]

/d

匹配一个数字字符,等效于[0-9]

/D

匹配一个非数字字符,等效于[^0-9]

/w

匹配包括下划线的任何单个字符,包括A~Z,a~z,0~9和下滑线 ”_”,等效于[a-zA-Z0-9_]

/W

与/w互补,匹配任何非单个字符,等效于[^a-zA-Z0-9_]

/s

匹配任何Unicode空白字符,包括空格,制表符、换页符等,等效于[/f/t/n/r]

/S

匹配任何非空白字符

/b

退格字符Backspace

重复次数(数量词)

*:表示对前面表达式的匹配出现零次或多次

例如:

Var reg_pattern = /bo*/;

将匹配下面的各字符串:

b

bo

booo

+:表示对前面表达式的匹配连续出现一次或多次。

例如:

Var reg_pattern = /bo+/;

将匹配下面的各字符串:

bo

booo

{n}:n为非负整数。表示对前面表达式的匹配出现确定的 n 次。

例如:

Var reg_pattern = /bo{3}/;

只能匹配”booo”。

{n,}:n为非负整数。表示对前面表达式的匹配至少出现 n 次,即出现 n 次

或者多于 n 次。

例如:

Var reg_pattern = /[A-Z]{3,}/g;

匹配连续出现的3 个或者多于3个的大写字母。

{n,m}:n和m均为非负整数。其中 n < m。表示最少匹配 n 次且最多匹配 m 次。

或者多于 n 次。

表达式:

Var reg_pattern = /[A-Z]{3,5}/g;

匹配连续出现的3 到 5 个大写字母。

例如搜索以 ”133” 开头的手机电话的正则表达式:

Var reg_pattern= /133/d{8}/g;

边界符:

^:表示字符串开始位置,在多行匹配中,表示一行的开始位置。符号本身并

不匹配任何字符

$:表示字符串结束位置,在多行匹配中,表示一行的结束位置。符号本身并

不匹配任何字符

/b:表示一个单词(而非字符)边界,也就是单词和空格之间的位置,


作者:chow__zh