(……续例9)

例10:全局获取捕获组匹配的内容

  1. void function reg_10()  
  2. {  
  3.     var s = "Live for nothing,die for something";  
  4.     var r = /^Live ([a-z]{3}) no([a-z]{5}),die \1 some\2$/g;  
  5.     if (r.exec(s) != null)  
  6.     {  
  7.         alert("全局捕获组1: " + RegExp.$1 +   
  8.               "\n全局捕获组2: " + RegExp.$2); //只能使用全局RegExp  
  9.     }  

这个例子与例9是一样的,主要用来说明如何获取捕获组匹配的内容。
RegExp是一个全局对象,不需要实例化就可以访问,保存着最近使用的有关正则表达式模式匹配信息。
其中有以下属性:indexlastIndexlastMatch、lastParen、leftContext、rightContext、$1~$9 等,这里只使用了$1$2,因为只有两个捕获组。
运行结果:$1为for,$2为thing。

(未完待续……)