首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

正则详解2

2011-12-24 
正则详解二正则表达式对象本对象包含正则表达式模式以及表明如何应用模式的标志。代码1.语法1re/pattern/[

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

      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;   //   创建正则表达式模式。    
      7.   var   arr;    
      8.   while   ((arr   =   re.exec(src))   !=   null)    


      9.   document.write(arr.index   +   "- "   +   arr.lastIndex   +   arr   +   "\t ");    
    10.   }    
    11.   else{    
    12.   alert( "请使用   JScript   的更新版本 ");    
    13.   }    
    14.   }    

返回值:0-3The   4-8rain   9-11in   12-17Spain   18-23falls   24-30mainly   31-33in   34-37the   38-43plain

test   方法\\
返回一个   Boolean   值,它指出在被查找的字符串中是否存在模式。
rgexp.test(str)

参数\\
rgexp
必选项。包含正则表达式模式或可用标志的正则表达式对象。

str
必选项。要在其上测试查找的字符串。

说明
test   方法检查在字符串中是否存在一个模式,如果存在则返回   true,否则就返回   false。
全局   RegExp   对象的属性不由   test   方法来修改。

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

      1.   function   TestDemo(re,   s)    
      2.   {    
      3.   var   s1;   //   声明变量。    
      4.   //   检查字符串是否存在正则表达式。    
      5.   if   (re.test(s))   //   测试是否存在。    
      6.   s1   =   "   contains   ";   //   s   包含模式。    
      7.   else    
      8.   s1   =   "   does   not   contain   ";   //   s   不包含模式。    
      9.   return( " ' "   +   s   +   " ' "   +   s1   +   " ' "+   re.source   +   " ' ");   //   返回字符串。    
    10.   }    

函数调用:document.write   (TestDemo(/ain+/   , "The   rain   in   Spain   falls   mainly   in   the   plain. "));

返回值: 'The   rain   in   Spain   falls   mainly   in   the   plain. '   contains   'ain+ '

match   方法
使用正则表达式模式对字符串执行查找,并将包含查找的结果作为数组返回。\\
stringObj.match(rgExp)

参数\\
stringObj
必选项。对其进行查找的   String   对象或字符串文字。

rgExp
必选项。为包含正则表达式模式和可用标志的正则表达式对象。也可以是包含正则表达式模式和可用标志的变量名或字符串文字。

说明\\
如果   match   方法没有找到匹配,返回   null。如果找到匹配返回一个数组并且更新全局   RegExp   对象的属性以反映匹配结果。
match   方法返回的数组有三个属性:input、index   和   lastIndex。Input   属性包含整个的被查找字符串。Index   属性包含了在整个被查找字符串中匹配的子字符串的位置。LastIndex   属性包含了最后一次匹配中最后一个字符的下一个位置。
如果没有设置全局标志   (g),数组的   0   元素包含整个匹配,而第   1   到   n   元素包含了匹配中曾出现过的任一个子匹配。这相当于没有设置全局标志的   exec   方法。如果设置了全局标志,元素   0   到   n   中包含所有匹配。

示例\\
下面的示例演示了match   方法的用法:
代码

      1.   function   MatchDemo()    
      2.   {    
      3.   var   r,   re;   //   声明变量。    
      4.   var   s   =   "The   rain   in   Spain   falls   mainly   in   the   plain ";    
      5.   re   =   /ain/i;   //   创建正则表达式模式。    
      6.   r   =   s.match(re);   //   尝试匹配搜索字符串。    


      7.   return(r);   //   返回第一次出现   "ain "   的地方。    
      8.   }    


返回值:ain

本示例说明带   g   标志设置的   match   方法的用法。
代码

      1.   function   MatchDemo()    
      2.   {    
      3.   var   r,   re;   //   声明变量。    
      4.   var   s   =   "The   rain   in   Spain   falls   mainly   in   the   plain ";    
      5.   re   =   /ain/ig;   //   创建正则表达式模式。    
      6.   r   =   s.match(re);   //   尝试去匹配搜索字符串。    
      7.   return(r);   //   返回的数组包含了所有   "ain "      
      8.   //   出现的四个匹配。    
      9.   }    


返回值:ain,ain,ain,ain

上面几行代码演示了字符串文字的   match   方法的用法。
代码

      1.   var   r,   re   =   "Spain ";    
      2.   r   =   "The   rain   in   Spain ".replace(re,   "Canada ");    
      3.   return   r;    


返回值:The   rain   in   Canada

search   方法
返回与正则表达式查找内容匹配的第一个子字符串的位置。

stringObj.search(rgExp)

参数\\
stringObj
必选项。要在其上进行查找的   String   对象或字符串文字。

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

说明

search   方法指明是否存在相应的匹配。如果找到一个匹配,search   方法将返回一个整数值,指明这个匹配距离字符串开始的偏移位置。如果没有找到匹配,则返回   -1。

示例\\
下面的示例演示了   search   方法的用法。
代码

      1.   function   SearchDemo()    
      2.   {    
      3.   var   r,   re;   //   声明变量。    
      4.   var   s   =   "The   rain   in   Spain   falls   mainly   in   the   plain. ";    
      5.   re   =   /falls/i;   //   创建正则表达式模式。    
      6.   r   =   s.search(re);   //   查找字符串。    
      7.   return(r);   //   返回   Boolean   结果。    


[解决办法]
mark
[解决办法]
学习//
[解决办法]
爽,mark
[解决办法]
mark
[解决办法]
mark

热点排行