日期:2014-05-18  浏览次数:20854 次

正则详解二
正则表达式对象
本对象包含正则表达式模式以及表明如何应用模式的标志。
代码

      1.   语法   1   re   =   /pattern/[flags]    
      2.   语法   2   re   =   new   RegExp( "pattern ",[ "flags "])      


参数
re
必选项。将要赋值为正则表达式模式的变量名。

Pattern
必选项。要使用的正则表达式模式。如果使用语法   1,用   "/ "   字符分隔模式。如果用语法   2,用引号将模式引起来。

Flags
可选项。如果使用语法   2   要用引号将   flag   引起来。标志可以组合使用,可用的有:
代码

      1.   g   (全文查找出现的所有   pattern)      
      2.   i   (忽略大小写)      
      3.   m   (多行查找)      

示例
下面的示例创建一个包含正则表达式模式及相关标志的对象(re),向您演示正则表达式对象的用法。在本例中,作为结果的正则表达式对象又用于   match   方法中:
代码

      1.   function   MatchDemo()    
      2.   {    
      3.   var   r,   re;   //   声明变量。    
      4.   var   s   =   "The   rain   in   Spain   falls   mainly   in   the   plain ";    
      5.   re   =   new   RegExp( "ain ", "g ");   //   创建正则表达式对象。    
      6.   r   =   s.match(re);   //   在字符串   s   中查找匹配。    
      7.   return(r);      
      8.   }    

返回值:   ain,ain,ain,ain\\
属性   lastIndex   属性   |   source   属性\\
方法   compile   方法   |   exec   方法   |   test   方法\\
要求   版本   3\\
请参阅   RegExp   对象   |   正则表达式语法   |   String   对象\\

exec   方法
用正则表达式模式在字符串中运行查找,并返回包含该查找结果的一个数组。
rgExp.exec(str)

参数

rgExp
必选项。包含正则表达式模式和可用标志的正则表达式对象。

str
必选项。要在其中执行查找的   String   对象或字符串文字。

说明\\
如果   exec   方法没有找到匹配,则它返回   null。如果它找到匹配,则   exec   方法返回一个数组,并且更新全局   RegExp   对象的属性,以反映匹配结果。数组的0元素包含了完整的匹配,而第1到n元素中包含的是匹配中出现的任意一个子匹配。这相当于没有设置全局标志   (g)   的   match   方法。
如果为正则表达式设置了全局标志,exec   从以   lastIndex   的值指示的位置开始查找。如果没有设置全局标志,exec   忽略   lastIndex   的值,从字符串的起始位置开始搜索。

exec   方法返回的数组有三个属性,分别是   input、index   和   lastIndex。Input   属性包含了整个被查找的字符串。Index   属性中包含了整个被查找字符串中被匹配的子字符串的位置。LastIndex   属性中包含了匹配中最后一个字符的下一个位置。

示例\\
下面的例子举例说明了   exec   方法的用法:
代码

      1.   function   RegExpTest()    
      2.   {    
      3.   var   ver   =   Number(ScriptEngineMajorVersion()   +   ". "   +   ScriptEngineMinorVersion())    
      4.   if   (ver   > =   5.5){   //   测试   JScript   的版本。    
      5.   var   src   =   "The   rain   in   Spain   falls   mainly   in   the   plain. ";    
      6.   var   re   =   /\w+/g;   //   创建正则表达式模式。