引用类型regexp类型

  

,,,,

JavaScript高级程序设计(第三版)笔记——第五章regexp类型

,

<人力资源/>

,

<强>

<强>

 ver  expression =,/模式/旗帜;

模式:可以是任何简单或者复杂的正则表达式
标记:
g:表示全局
我:表示不区分大小写
m:表示多行模式,在到达一行的末尾时还会继续查找下一行

 var  patterns1 =,//g;//匹配字符中所有“在”的实例var  patterns2 =,/在/我(bc);//匹配所有的“蝙蝠”或“猫”,不区分大小写var  patterns3 =,/悲伤/gi;//匹配所有的以“在”结尾的三个字符的组合,不区分大小写

模式中使用的所有元字符都必须转义,正则表达式中的元字符包括:([{\ ^ $ |)?* +。]}

<>以前var  patterns4 =,/我/\[公元前\];//匹配第一个“(bc)”,不区分大小写

<强>

,

 var  patterns2 =, new 正则表达式(“(bc)”,“我”);//与var  patterns2 =,/(bc)/我;相同

,

同样使用RegExp同样也要对元字符进行转义而且是双重转义

 vqr  pattterns4 =, new 正则表达式(“\ \[公元前\ \]”,“我”);与var  patterns4 =,/我/\[公元前\];相同

这两种方法创建的正则表达式不一样。正则表达式字面量会始终共享一个RegExp实例,而使用构造函数创建的每一个新RegExp实例都是一个新实例

引用类型RegExp类型

 var  re =,空,
  ,,,,,,,,,,,我,,,,,,,,,,(i=0; i<10;我+ +){//只为/猫/创建了一个RegExp实例,第一次调用成功,第二是失败,因为当第二次调用时是从索引值为3的字符开始的,所以找不到他,当第三次调用时又会从开头开始。
  ,,,,,,,,,,,re =,/猫/g;
  ,,,,,,,,,,,师(“catgghi”);
  ,,,,,,,},,,,,,,,,(i=0; i<10;我+ +){//用RegExp构造函数在每次循环中都会创建正则表达式,所以每次调测试()都用会返回现实
  ,,,,,,,,,,,re =, new 正则表达式(“猫”,“g”);
  ,,,,,,,,,,,师(“catgghi”);
  ,,,,,,,}

引用类型regexp类型

,

<强>

<人力资源/>

,

全球:是否设置了g标志
ignoreCase:是否设置了我标志
多行:是否设置了米标志
lastIndex:表示开始搜索下一个匹配项的字符位置,从0算起
来源:正则表达式的字符串表示

 var  patterns2 =,/我/\[公元前\];
  警报(patterns2.global);,,//falsealert (patterns2.source);,//盶[公元前\]在“

<强>

<人力资源/>

,

<强> RegExp对象的主要方法是exec() 强,专门为捕获组设计的,接受一个参数,返回包含匹配项信息的数组,相对于数组的实例,多了两个属性指数和输入,在数组中,第一项是匹配的字符串,其他项是与模式中的捕获组匹配的字符串。

,

输入:表示应用正则表达式的字符串
指数:表示匹配项在字符串中的位置

引用类型RegExp类型

 var  text =,“mom 以及dad 以及宝贝”;var  pattern =,/mom (以及dad (以及婴儿)?)?/gi; var  matches =, pattern.exec(文本);
  警报(matches.index);,//0;警报(matches.input);,//癿om 以及dad 以及宝贝”警报(匹配[0]);,//癿om 以及dad 以及宝贝”警报(匹配[1]);,//币约癲ad 以及宝贝”警报(匹配[2]);,//耙约氨Ρ础?/pre> 

引用类型regexp类型

对于exec()方法,设置了全局标志(g),每次也只会返回一个匹配项。不设置全局标志的情况下,在同一个字符串上调用它是将始终返回第一个匹配项信息,设置了(g),每次调用它时都会在字符串中继续查找。

引用类型regexp类型

 var  text =,“蝙蝠猫,,,,,,胖”;var  pattern1 =,//必备;var  matches =, pattern1.exex(文本);
  警报(matches.index);,//0警报(匹配[0]);,//catalert (pattern1.lastIndex);//0=,,matches  pattern1.exex(文本);
  警报(matches.index);,//0警报(匹配[0]);,//catalert (pattern1.lastIndex);,//0 var  pattern2 =,//g必备;var  matches =, pattern2.exex(文本);
  警报(matches.index);,//0警报(匹配[0]);,//catalert (pattern1.lastIndex);,//3 matches =, pattern1.exex(文本);
  警报(matches.index);,//5警报(匹配[0]);,//batalert (pattern1.lastIndex);,//8 

引用类型regexp类型