正则表达式-----笔记

第七章 正则表达式

一、正则表达式的支持
var reg=new RegExp("cat")//匹配字符串中第一次出现的cat
var reg=new RegExp("cat","g")//“g”是global的缩写,匹配字符串中所有cat
var reg=new RegExp("cat","gi")//i表示不区分大小写
var reg=/cat/gi;//Perl风格写法

test() 返回true、false
exec() 返回数组
match() 返回一个包含在字符串中所有匹配的数组
search() 返回第一次出现的索引

为什么有些符号必须转义,因为这些符号是元字符,元字符是正则表达式中一部分
元字符有:([{\^$|)?*+.
因此:var icg=/\?/ 或者 =new RegExp("\\?")注意这里面一个斜杠和两个斜杠的区别

二、字符类
1.简单类
var a=/[abc]de/gi; [...]中会选择性匹配
2.负向类
var a=/[^abc]de/gi; [...]不会匹配
3.范围类
[a-z][A-Z][0-9]
4.组合类
[a-zA-Z0-9]
5.预定义类
.->[^\n\r]除了换行和回车之外的任意字符
\d->[0-9]数字
\D->[^0-9]非数字
\s->[ \t\n\x0B\f\r]空白字符
\S->[^ \t\n\x0B\f\r]非空白字符
\w->[a-zA-Z0-9]单词字符
\W->[^a-zA-Z0-9]非单词字符

简单量词:
? ->出现0次或1次
* ->出现0次或多次
+ ->出现1次或多次
{n} ->一定出现n次
{n,m} ->至少出现n次不超过m次
{n,} ->至少出现n次

eg: /b?cds?d/=/b{0,1}cds{0,1}d/

贪婪量词:先看整个字符串是不是一个匹配,不是的话,减去最后一个字符,再匹配,类似循环,直到结束。符号表示同简单量词
惰性量词:先看字符串中第一个字母是不是匹配,不是的话,继续读入下一个字符,再匹配,类似循环,直到结束。在简单量词后面加"?"号
支配量词:只尝试匹配整个字符串。在简单量词后面加"+"号

候选符号:|
边界符:
^ 行开头
$ 行结尾
\b 单词边界
\B 非单词边界

三、RegExp对象
1.实例属性
global(g)------Boolean值,表示全局选项是否设置
ignoreCase(i)-----Boolean值,表示是否忽略大小写
lastIndex---------整数,代表下次匹配会从那个字符开始,也就是当前匹配的最后索引值(尽在使用exec() or test()函数才会填入,否则默认为0,即从头开始匹配)
multiline(m)-----Boolean值,表示是否是国航匹配模式
source---源字符串形式

2.静态属性
长名-----------------短名-----描述
input---------------$_ 最后用于匹配的字符串(传递给exec() or test()的字符串)
lastMatch-----------$& 最后匹配的字符
pastParen-----------$+ 最后匹配的分组
leftContext---------$` 在上次匹配的前面的子串
multiline-----------$* 是否启用多行模式
rightContext--------$' 在上次匹配的后面的子串
eg:
var sToMatch="this has been a short,short number";
var reShort=/(s)hort/g;
reShort.test(sToMatch);
alert(RegExp.input); 或者 alert(RegExp.$_); //返回"this has been a short,short number"
alert(RegExp.leftContext); 或者 alert(RegExp["$`"]); //返回"this has been a "
alert(RegExp.rightContext); 或者 alert(RegExp["$'"]); //返回",short number"
alert(RegExp.lastMatch); 或者 alert(RegExp["$&"]); //返回"short"
alert(RegExp.pastParen); 或者 alert(RegExp["$+"]); //返回"s"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值