码拉松 article 4

JavaScript中的正则表达式

RegExp类型

EMCAScript通过RegExp类型来支持正则表达式。语法类似Perl:

var expression = /pattren/flags

其中的模式pattern部分可以是任何简单或复杂的正则表达式。每个正则表达式都可带有一个或多个标志flag

  • g:global,全局模式,即模式将被应用于所有字符串
  • i:表示不区分大小写
  • m:表示(multiline)多行模式,即到达行末后会继续查找下一行是否存在与之相匹配的项
    示例如下:
 var pattern1 = /at/g		//匹配字符串中所有"at"的示例
 var pattern2 = /[bc]at/i	//匹配第一个"bat"/"cat"不区分大小写

与其他语言类似,当要对. [ ]等符号匹配时要在前方加上\进行转义。
除此之外还可以通过构造函数来创建正则表达式:

var p = /[bc]at/i
var p = new RegExp("[bc]at","i")
//以上两个语句的作用完全相同

但需要注意的时候,在构造函数中创建正则需要进行双重转义,如用\\[bc\\]at表示正则[bc]at

RegExp实例属性

每个RegExp的示例都具有以下属性:

  • global:布尔值,表示是否设置了g标志
  • ignereCase:布尔值,表示是否设置了i标志
  • lastIndex:整数,便是开始搜索下一个匹配项的字符位置,从0算起
  • multiline:布尔值,表示是否设置了m标志
  • source:正则表达式的字符串表示
    例如:
var p1 = \.ac\g

alert(p1.global)		//true
alert(p1.ignoreCase)	//false
alert(p1.lastIndex)		//0
alert(p1.multiline)		//false
alert(p1.source)		//.ac
RegExp实例方法
  • exec()方法:

接受要应用模式的字符串为参数,返回包含第一个匹配项信息的数组;或者在没有匹配项的情况下返回null。返回到数组是Array的实例。返回的数组包含两个额外的属性:index和input。其中,index表示匹配项在字符串中的位置,input表示应用正则表达式的字符串。在数组中,第一项是与整个模式匹配的字符串,其他项是与模式中的捕获组匹配的字符串:

var text = "mom and dad and baby";
var pattern = /mom( and dad( and baby)?)?/gi;
var matches = pattern.exec(text);

alert(matches.index);    //0
alert(matches.input);    //"mom and dad and baby"
alert(matches[0]);       //"mom and dad and baby"
alert(matches[1]);       //" and dad and baby"
alert(matches[2]);       //" and baby"
  • test()方法:
    接受一个字符串参数。在模式与该参数匹配的情况下返回true,否则返回false :
var text =000-00-0000;
var pattern = /\d{3}-d{2}-d{4}/;

pattern.test(text);           //true
  • compile()方法:接收一个字符串参数,用来改变正则表达式的模式匹配值。
var pattern = /abc/;
pattern.test("abc");    //true

pattern.compile("def");
pattern.test("abc");    //false
pattern.test("def");    //true
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值