RegExp

1.RegExp实例属性

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

eg:

var pattern2=new RegExp("\\[bc\\]at","i");
alert(pattern2.global);        //false
alert(pattern2.ingnoreCase);   //true
alert(pattern2.lastIndex);     //0
alert(pattern2.multiline);     //false
alert(pattern2.source);        //"\[bc\]at"

2.RegExp实例方法
RegExp对象的主要方法是exec(),该方法是专门为捕获组而设计的。exec()接受一个参数,即要应用模式的字符串,然后返回包含第一个匹配项信息的数组;或者在没有匹配项的情况下返回null。
index表示匹配项在字符串中的位置,
input表示应用正则表达式的字符串。
在数组中,第一项是与整个模式匹配的字符串,其他项是与模式中的捕获组匹配的字符串(如果没有捕获组,则该数组只包含一项)。
eg:

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"

对于exec()方法而言,即使在模式中设置了全局标志(g),它每次也只会返回一个匹配项。在不设置全局标志的情况下,在同一个字符串上多次调用exec()将始终返回第一个匹配项的信息。
eg:

var text="cat, bat, sat, fat";
var pattern1 = /.at/;

var matches=pattern1.exec(text);
alert(matches.index);       // 0
alert(matches[0]);          //cat
alert(pattern1.lastIndex);  //0

var matches=pattern1.exec(text);
alert(matches.index);       // 0
alert(matches[0]);          //cat
alert(pattern1.lastIndex);  //0
//lastIndex用于规定下次匹配的初始位置,在非全局模式下始终保持不变

var pattern2 = /.at/g;

var matches=pattern2.exec(text);
alert(matches.index);       // 0
alert(matches[0]);          //cat
alert(pattern1.lastIndex);  //0

var matches=pattern2.exec(text);
alert(matches.index);       // 5
alert(matches[0]);          //bat
alert(pattern1.lastIndex);  //8

正则表达式的第二个方法是test( ),它接受一个字符串参数。在模式与该参数匹配的情况下返回true;否则,返回false。

你可能感兴趣的:(正则表达式,实例,匹配)