正则表达式对象
						
本对象包含正则表达式模式以及表明如何应用模式的标志。 
				代码
				
						
								
										- 
												
														语法 
														1
														 re = /pattern/[flags] 
  
												
										
- 
												语法 
												2
												 re = 
												new
												 RegExp(
												"pattern"
												,[
												"flags"
												])  
  
										
 
				 
				参数 
re 
必选项。将要赋值为正则表达式模式的变量名。 
Pattern 
必选项。要使用的正则表达式模式。如果使用语法 1,用 "/" 字符分隔模式。如果用语法 2,用引号将模式引起来。 
Flags 
可选项。如果使用语法 2 要用引号将 flag 引起来。标志可以组合使用,可用的有: 
代码
- g (全文查找出现的所有 pattern)    
- i (忽略大小写)    
- m (多行查找)    
示例
下面的示例创建一个包含正则表达式模式及相关标志的对象(re),向您演示正则表达式对象的用法。在本例中,作为结果的正则表达式对象又用于 match 
方法中: 
代码
- function MatchDemo()   
- {   
- var r, re; // 声明变量。   
- var s = "The rain in Spain falls mainly in the plain"; 
  
- re = new RegExp("ain","g"); // 创建正则表达式对象。 
  
- r = s.match(re); // 在字符串 s 中查找匹配。   
- return(r);    
- }   
返回值: 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 方法的用法: 
代码
- function RegExpTest()   
- {   
- var ver = Number(ScriptEngineMajorVersion() + "." + ScriptEngineMinorVersion()) 
  
- if (ver >= 5.5){ // 测试 JScript 的版本。 
  
- var src = "The rain in Spain falls mainly in the plain."; 
  
- var re = /\w+/g; // 创建正则表达式模式。   
- var arr;   
- while ((arr = re.exec(src)) != null) 
  
- document.write(arr.index + "-" + arr.lastIndex + arr + "\t"); 
  
- }   
- else{   
- alert("请使用 JScript 的更新版本");   
- }   
- }   
返回值: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 方法的用法: 
代码
- function TestDemo(re, s)   
- {   
- var s1; // 声明变量。   
- // 检查字符串是否存在正则表达式。   
- if (re.test(s)) // 测试是否存在。 
  
- s1 = " contains "; // s 包含模式。 
  
- else  
- s1 = " does not contain "; // s 不包含模式。 
  
- return("'" + s + "'" + s1 + "'"+ re.source + "'"); // 返回字符串。 
  
- }   
函数调用: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 方法的用法: 
代码
- function MatchDemo()   
- {   
- var r, re; // 声明变量。   
- var s = "The rain in Spain falls mainly in the plain"; 
  
- re = /ain/i; // 创建正则表达式模式。   
- r = s.match(re); // 尝试匹配搜索字符串。   
- return(r); // 返回第一次出现 "ain" 的地方。 
  
- }   
返回值:ain 
本示例说明带 g 标志设置的 match 方法的用法。 
代码
- function MatchDemo()   
- {   
- var r, re; // 声明变量。   
- var s = "The rain in Spain falls mainly in the plain"; 
  
- re = /ain/ig; // 创建正则表达式模式。   
- r = s.match(re); // 尝试去匹配搜索字符串。   
- return(r); // 返回的数组包含了所有 "ain"  
  
- // 出现的四个匹配。   
- }   
返回值:ain,ain,ain,ain 
上面几行代码演示了字符串文字的 match 方法的用法。 
代码
- var r, re = "Spain";   
- r = "The rain in Spain".replace(re, "Canada"); 
  
- return r; 
  
返回值:The rain in Canada 
search 方法
返回与正则表达式查找内容匹配的第一个子字符串的位置。 
stringObj.search(rgExp) 
参数\\ 
stringObj 
必选项。要在其上进行查找的 String 对象或字符串文字。 
rgExp 
必选项。包含正则表达式模式和可用标志的正则表达式对象。 
说明 
search 方法指明是否存在相应的匹配。如果找到一个匹配,search 
方法将返回一个整数值,指明这个匹配距离字符串开始的偏移位置。如果没有找到匹配,则返回 -1。 
示例\\ 
下面的示例演示了 search 方法的用法。 
代码
- function SearchDemo()   
- {   
- var r, re; // 声明变量。   
- var s = "The rain in Spain falls mainly in the plain."; 
  
- re = /falls/i; // 创建正则表达式模式。   
- r = s.search(re); // 查找字符串。   
- return(r); // 返回 Boolean 结果。 
  
- }