Javascript中的RegExp对象

Javascript中的RegExp对象

          理解Javascript中RegExp对象

RegExp 即为JavaScript中正则表达式对象的名称。

在RegExp中可以使用的一些属性:

♦global — boolean,省略为g,表示全局选项是否已设置

♦ignoreCase — Boolean值,省略为i,表示忽略大小写选项是否已经设置

♦laseindex –整数,代表下次开始匹配的字符位置,在使用exec()和text()函数进行匹配时才会有效。

♦multiline — boolean值,省略为m,表示多行模式是否已经设置

♦source — 正则表达式的源字符串模式

laseindex在正则表达式匹配中的应用:
——————————————————那传说中的分割线————————————

var sToMatch  = "bbq is short for barbecue";
var reB = /b/g;
reB.exec(sToMarch);
alert(reB.lastindex);   //output "1"
reB.exec(sToMarch);
alert(reB.lastindex);   //output "2"
reB.exec(sToMarch);
alert(reB.lastindex);   //output "18"
reB.exec(sToMarch);
reB.lastindex = 0;
alert(reB.lastindex);   //output "21"

——————————————————那传说中的分割线———————————–

  RegExp对象的一些静态属性:

 

   完整属性名          缩写名         描述

♦ input                     $_                最后用于匹配的字符串[用于exec() 以及 test() ]
♦lastMatch            $&                最后匹配的字符
♦lastParen             $+                最后匹配的分组
♦leftContext         $`                 在上次匹配的前面的字串
♦multiline              $*                 用于指定是否所有的表达式都使用多行模式的布尔值
♦rightContext      $’                   在上次匹配之后的字串

——————————————————那传说中的分割线————————————

var	sToMatch = "this has been a short,short summer";
var reShort = /(s)hort/g;
reShort.test(sToMatch);

alert(RegExp.input);        //out:this has been a short,short summer
alert(RegExp.leftContext);    //out:this has been a
alert(RegExp.rightContext);    //out:,short summer
alert(RegExp.lastMatch);    //out:short
alert(RegExp.lastParen);    //out:s

alert(RegExp.$_);        //out:this has been a short,short summer
alert(RegExp["$`"]);    //out:this has been a
alert(RegExp["$'"]);    //out:,short summer
alert(RegExp["$&"]);    //out:short
alert(RegExp["$+"]);    //out:s

——————————————————那传说中的分割线————————————

 在如上代码中使用test()或者exec()会使RegExp对象的所有属性(除开multiline)的值重置.

multiline属性的使用:

•multiline属性在Oprea和IE中不被支持。

——————————————————那传说中的分割线————————————

  var sToMatch = "First second\nthird fourth\nfifth sixth";
  var reLastWordOnLine = /(\w+)$/g;
  RegExp.multiline = true;    //设置对象的多行模式开关为开
  var arrWords = sToMatch.match(reLastWordOnLine );
  //arrWords  : second | fourth | sixth

——————————————————那传说中的分割线————————————

留下回复