日期:2014-05-16  浏览次数:20310 次

问一个关于正则表达式exec方法的问题
var patt1=new RegExp("(life)","g");
var beTest="These is a free thing in life."

result=patt1.exec(beTest)
document.write(result);

为什么输出的是
life,life 
有两个life呢?

------解决方案--------------------
把“var patt1=new RegExp("(life)","g");”改成
var patt1=new RegExp("life","g");不要括号
------解决方案--------------------
exec得到的数组 : 
array[0]是整个字符串 
array[1]是第一个括号捕获的内容
array[2]是第二个括号捕获的内容
array[3]是第三个括号捕获的内容
array[4]是第四个括号捕获的内容
... ...
------解决方案--------------------
exec返回的结果
r[0] 是匹配的结果
r[1-n] 是所有的子匹配 即表单是中的()