RegExp

ECMAScript通过RegExp类型来支持正则表达式。形式如下:

var expression = / pattern / flags ;

patten:可以是任何简单或复杂的正则表达式,可以包含字符类、限定符、分组、向前查找以及反向应用;
flags:每个正则表达式都可带有一个或多个flags;

三个flags:

  • g:表示全局模式,即模式将应用于所有字符串,而不是在找到第一个匹配项时就立即停止。
  • i:表示不区分大小写,即在确定匹配模式项时忽略模式与字符串的大小写。
  • m:表示多行模式,即在一行文本末尾还会继续查找下一行是否有匹配的字符。

例子:

/*匹配字符中所有ed的实例*/
var pattern1 = /ed/g;
/*匹配第一个“bed”或“red”,不区分大小写*/
var pattern2 = /[br]ed/i;
/*匹配所有以“ed”结尾的3个字符的组合,不区分大小写*/
var pattern3 = /.at/gi;

与其他语言中的正则表达式类似,模式中使用的所有元字符都必须转义。
元字符有:( [ { \ ^ $ } | ? * + ] . )
如果想要匹配以上字符,需要进行转义。

另一种创建正则表达式的方法: 使用RegExp构造函数。
它接收两个参数:1、要匹配的字符串数组;2、可选的标志字符串
可以使用字面量定义的任何表达式,都可以用构造函数来定义。

例:

/*匹配第一个“bed”或“red”,不区分大小写*/
var pattern1 = /[br]ed/i;


/*与pattern1相同,只不过是使用构造函数创建*/
var pattern2 = new RegExp("[br]ed","i");
var re = null,
    i;

for(i = 0; i < 10; i++){
    re = /cat/g;
    re.test("catastrophe");
}
for(i = 0; i < 10; i++){
    re = new RegExp("cat", "g");
    re.test("catastrophe");
}

在第一个循环中,实际上只为/cat/创建了一个RegExp实例。因为实例属性不会重置。
第二个循环每次都创建一个新的RegExp实例。每次调用test()都返回true。


RegExp实例属性

global:布尔值,表示是否设置了g标志
ignoreCase:布尔值,表示是否设置了i标志
lastIndex:整数,表示开始搜索下一个匹配项的字符位置,从0算起。
multitle:布尔值,表示是否设置了m标志
source:正则表达式的字符串表示,按照字面量形式而非传入构造函数的字符串模式返回。保存的是规范形式的字符串,即字面量形式所用的字符串。


RegExp实例方法

待完善。。。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值