第五章 引用类型(4.RegExp类型)

  ·   JS高设(第三版)   ·   JavaScript     浏览量:

ES通过RegExp(regular expression)类型来支持正则表达式。
创建方法有两种,且完全是等价的,第一种为:

    var expression = / pattern/ flags ;

第二种,两个参数都是字符串

    var expression = new regExp("pattern", "flags");
  • pattern:可以是任何简单/复杂的正则表达式,可包含字符类、限定符、分组、向前查找以及反向引用。
  • flags:一个或多个,用以标明表达式行为,正则表达式匹配模式支持下列三个标志
    1.g:表示全局模式(global)
    2.i:布局分大小写(case-insensitive)
    3.m:多行模式(multiline)
    var pattern1 = /at/g;       // 匹配字符串中所有“at”实例
    var pattern2 = /[bc]at/i;   // 匹配第一个bat或者cat,不区分大小写
    var pattern3 = /.at.gi;     // 匹配所有以at结尾的3个字符的组合,不区分大小写

与其他语言中的正则表达式相似,模式中使用的所有元字符 都必须转义。
正则表达式中的元字符包括:[ ]{ }( ) | \ + * . ? $ ^;他们在正则表达式中有特殊用途,所以想要匹配字符串中包含他们的话就需要进行转义

    var pattern2 = /bat/i;   // 匹配第一个bat,不区分大小写
    var pattern2 = /\[b\]at/i;   // 匹配第一个[b]at,不区分大小写

RegExp实例属性

每个RegExp的实例都具有以下属性,来获取有关模式的各种信息

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

2

RegExp实例方法

  • exec()方法
    1.专门为捕获组而设计
    2.接受一个参数:要应用的模式的字符串
    3.返回包含第一个匹配项信息的数组和额外属性index和input,未找到匹配返回null
    4.返回的数组:第一项时与整个模式匹配的字符串,其他项是与模式中的捕获组匹配的字符串(若模式中没有捕获组,该数组只包含一项)
    6.index:匹配项再字符串中的位置
    7.input:应用正则表达式的字符串
    3

  • test()方法
    1.接受一个字符串参数
    2.模式与字符串匹配返回true,否则返回false
    3.如果只想知道是否匹配,不需要知道内容,此方法非常方便
    4.常被使用到if语句中

4
RegExp实例继承的toLocaleString()和toString()都会返回正则表达式的字面量,valueOf()返回正则表达式本身



收起 >>
第五章 引用类型(4.RegExp类型)