RegExp类型

  • ECMAScript通过regExp类型来支持正则表达式
  • 每个正则表达式都可带有一或多个标志(flags)
  • g:表示全局模式(global),即模式将被应用于所有字符串,而非在发现第一个匹配项时立即停止
  • i:表示不区分大小写(case-insensitive)模式,即在确定匹配项时忽略模式与字符串的大小写
  • m表示多行模式(multiline),即在到达一行文本末尾时还会继续查找下一行中是否存在于模式匹配的项
// 匹配字符串中所有“at”的实例var pattern1 = /at/g;// 匹配第一个"bat"或"cat",不区分大小写var pattern2 = /[bc]at/i;// 匹配所有以"at"结尾的3个字符的组合,不区分大小写var pattern3 = /.at/gi;
  • 模式中使用的所有元字符都必须转义:( [ { ^ $ | ) ? * + . ] }
  • 使用RegExp构造函数,两个参数都必须是字符串,所有元字符都要双重转义
// 匹配第一个"bat"或"cat", 不区分大小写var patter1 = /[bc]at/i;// 匹配第一个"[bc]at", 不区分大小写var pattern2 = /\[bc\]at/i;// 匹配所有以"at"结尾的3个字符的组合,不区分大小写var pattern3 = /.at/gi// 匹配所有".at",不区分大小写var pattern4 = /\.at/gi;// 使用RegExp构造函数,所有元字符都要双重转义// 两个参数都必须是字符串var pattern4 = new RegExp("\\.at", "i");

RegExp实例属性

  • RegExp的每个实例都具有下列属性,通过这些属性可以取得有关模式的各种信息

    • global 布尔值 表示是否设置了g标志
    • ignoreCase 布尔值 表示是否设置了i标志
    • lastIndex 整数 表示开始搜索下一个匹配项字符位置,从0算起
    • multiline 布尔值 表示是否设置了m标志
    • source 正则表达式的字符串表示,按照字面量形式而非传入构造函数中的字符串模式返回
var pattern1 = /\[bc\]at/i;console.log(pattern1.global);            // falseconsole.log(pattern1.ignoreCase);        // trueconsole.log(pattern1.multiline);         // falseconsole.log(pattern1.lastIndex);         // 0console.log(pattern1.source);            // "\[bc\]at"

RegExp实例方法

  • exec() 专门为捕获组而设计的,接收一个参数,即要应用模式的字符串,然后返回包含第一个匹配项信息的数组;或者在没有匹配项的情况下返回null
  • 返回的数组虽然是Array的实例,但包含两个额外的属性:index和input
  • index表示匹配项在字符串中的位置
  • input表示表达式的字符串
  • 即使在模式中设置了全局标志(g),exec()每次也只会返回一个匹配项,不设置g的时候,每次都返回第一个匹配项,设置了g的情况下,每次调用exec()则都会在字符串中继续查找新匹配项
var txt = "mom and dad and baby";var pattern = /mom( and dad( and baby)?)?/gi;var matches = pattern.exec(txt);console.log(matches);            //    ["mom and dad and baby", " and dad and baby", " and baby", index: 0, input: "mom and dad and baby", groups: undefined]
  • test() 接收字符串参数,匹配返回true不匹配返回false
var txt = "000-00-0000";var pattern = /\d{3}-\d{2}-\d{4}/;if (pattern.test(txt)) {    alert("The pattern was matched.");}
  • toString() toLocaleString() 都会返回正则表达式的字面量,与创建表达式的方式无关
  • valueOf() 返回正则表达式本身

RegExp构造函数属性

Function类型

基本包装类型

单体内置对象