正则表达式笔记之四

在JavaScript中的每个正则表达式都是一个对象。这些对象有下面的一些属性。

 

1, 实例属性:RegExp的实例有一些开发人员可以使用的属性。

      global - Boolean值,表示g(全局选项)是否设置

      ignoreCase - Boolean值,表示i(忽略大小写选项)是否设置

      lastIndex - 整数,代表下次匹配将会从哪个字符位置开始(只有当使用exec()或test()函数才会填入,否则为0

      multiline - Boolean值,表示m(多行模式选项)是否设置

      source - 正则表达式的源字符串形式。例如表达式/[ba]*/的source将返回"[ba]*"

 

      在这些属性中,真正有用的是lastIndex,它可以告诉你正则表达式在某个字符串中停止之前,查找乐多元:

      var sToMatch = "bbq is short for barbecue";

      var regB = /b/g;

      regB.exec(sToMatch);

      alert(regB.lastIndex);              // output "1";

      regB.exec(sToMatch);

      alert(regB.lastIndex);              // output "2";

      regB.exec(sToMatch);

      alert(regB.lastIndex);              // output "18";

      regB.exec(sToMatch);

      alert(regB.lastIndex);              // output "21";

      如果想从头开始匹配,可以将lastIndex设为0.

 

2, 静态属性: 静态属性对所有的正则表达式都有效。这些属性都有两个名字: 一个复杂名字和一个以$开头的简短名字,如下:

       长名                          短名                            描述

       input                        $_                         最后用于匹配的字符串(传递给exec()或test()的字符串)

       lastMatch                 $&                         最后匹配的字符

       lastParen                 $+                         最后匹配的分组

       leftContext               $`                         在上次匹配的前面的子串

       multiline                   $*                          用于指定是否所有的表达式都使用多行模式的选项

       rightContext             $'                          在上次匹配之后的子串

       这些属性可以告诉你,关于刚使用的exec()或test()完成的匹配的一些特定信息。如:

       var sToMatch = "this has been a short, short summer";

       var regShort = /(s)hort)/g;

       regShort.test(sToMatch);

       alert(RegExp.input);                // output "this has been a short, short summer"

       alert(RegExp.leftContext);      // output "this has been a "

       alert(RegExp.rightContext);    // output ", short summer"

       alert(RegExp.lastMatch);         // output "short";

       alert(RegExp.lastParen);         // output "s"

       记住,每次执行exec()或test()时,所有的属性(除multiline)都会被重新设置。

      

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(JavaScript,正则表达式,input,output)