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(字符串或者正则表达式),返回一个数组

浙公网安备 33010602011771号