【JS笔记】5.4 RegExp类型

RegExp类型包含信息:模式和标志

创建RegExp对象:

方法一:

字面量形式

var expression = /pattern/flags;

flags:

  • g:全局模式,模式将被应用于所有字符串,而非发现第一个匹配项时停止
  • i:不区分大小写(ignorecase)
  • m:(multiline)多行模式,到达一行文本末尾时还会继续查找下一行

方法二:

RegExp(patternString[, flagsString])构造函数

var pattern2 = new RegExp("\\[bc\\]at", "i");

相当于:var pattern2 = /\[bc\]at/i;

注:

ECMAScript3中所有字面量形式创建的RegExp对象共享一个RegExp实例,而所有构造函数创建的RegExp对象各自拥有一个RegExp实例

ECMAScript5中两种方式相同

RegExp实例属性

  • global:布尔值,是否设置了g标志
  • ignoreCase:布尔值。是否设置了i标志
  • multiline:布尔值,是否设置了m标志
  • source:字符串。RegExp对象的模式。(字面量形式中的字符串,而非构造函数形式中的字符串)
  • lastIndex:整数,表示下一次搜索的起始位置,从零开始(test()和设置了g的exec()中,该值会随着RegExp对象的使用而变化)

RegExp实例方法

exec(string)

返回数组array,array有index和input属性

index属性:string中匹配到pattern的起始位置

input:string

array[0]:string中匹配到的字符串

array[1],array[2]....:string中与捕获组匹配的字符串

注:若正则表达式对象设置了g,那么lastIndex属性的值会随着exec()的多次调用而变化

test(string)

若在string中匹配到pattern,返回true,修改lastIndex;

若没有匹配到,返回false,lastIndex = 0

继承方法:

toLocalString()和toString():返回RegExp的字面量(字符串),如:"/cat/i"

valueOf():返回正则表达式对象本身

 

posted @ 2016-08-30 16:06  Carolina  阅读(191)  评论(0编辑  收藏  举报