JavaScript学习(三)--RegExp

1、  申明方式有两种

1)       var pattern = /s$/g; 直接量

2)       var pattern = new RegExp(“s$”, “g”); 对象

2、  字符类

将直接量字符串放入[],/[abc]/表示和字母”a”,”b”,”c”任一个都匹配;/[^abc]/表示匹配”a”,”b”,”c”以外的所有字符。/[a-zA-z0-9]/匹配任何字母和数字。[\s\d]

3、  正则表达式的字符集

[……]   方括号内的任意字符

[^……]  不在方括号内的任意字符

\w         任何ASCII字符组成的单词,等价于[a-zA-z0-9]

\W              任何不是ASCII字符组成的单词,等价于[^a-zA-z0-9]

\s                匹配空格符、制表符和其他Unicode空白符

\S                匹配非Unicode空白符

\d                任意ASCII数字,等价于[0-9]

\D               任意ASCII数字之外的任意字符,等价于[^0-9]

.                  除了换行符和其他Unicode行终止符之外的的任意字符

[\b]             退格直接量

4、  重复

{n,  m}     匹配前一项至少n次,但不超过m次

{n, }             匹配前一项n次或者更多次

{n}               匹配前一项n次

?                  匹配前一项0次或者1次,等价于{0,1}

+                  匹配前一项1次或多次,等价于{1,}

*                  匹配前一项0次或多次,等价于{0,}

注:aaab不能匹配出来ab最短子串

5、  选择、分组和引用

/ab|bc|ef/ 可以匹配三者中的任意一个;

ab 用/a|ab/只能匹配第一个字符;从左到右匹配

/java(script)/ ()里的内容可有可无

/([Jj]java([Ss](script?))\sis\s(fun\w*))/ “?”代表引用,并不是引用模式而是引用模式匹配的文本的引用。

6、  制定匹配位置

匹配单词 /^javascript$/ 或/\bjava\b/ \b表示单词的边界

(?=p)  要求接下来的字符都与p匹配,但不能包括匹配p的那些字符,匹配的文本带有编号,二球正则表达式会记忆与每个表达式匹配的文本

(?!=p) 要求接下来的字符不与p匹配

7、  修饰符

I         不区分大小写

g        执行全局匹配

m       多行匹配

8、  RegExp的属性和方法

1)       String.search(/exp/);不支持全局检索

2)       String.replace(正则表达式,要替换的字符串)

String.replace(/”([^”]*)”/g, ‘ “$1” ’);替换指定位置字符

3)       String.match(正则表达式) 结果组成数组

4)       String.exec() 返回一个数组

5)       String.split(字符串或者正则表达式),返回一个数组

posted @ 2015-09-30 16:19  会飞的树叶  阅读(75)  评论(0)    收藏  举报