(……续例10)

例11:非捕获组匹配

  1. void function reg_11()  
  2. {  
  3.     var s = "Live for nothing";  
  4.     var r = /^Live for no(?:[a-z]{5})$/g;  
  5.     if (r.exec(s) != null)  
  6.     {  
  7.         alert("全局捕获组1: " + RegExp.$1);  
  8.     }  

但s与r匹配时,r中的()符号会生成一个捕获组,即thing字符串,但这里使用了?:符号,使得这个组是一个非捕获组。
因此,虽然if判定为真,但全局对象RegExp的$1属性却为空。

(未完待续……)