把下面加粗的代码改为show(i+RegExp.$1)你会发现输出结果不同,为什么呢?
<%@LANGUAGE="JAVASCRIPT" CODEPAGE="936"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head><body>
<textarea id="xs"><P>Events are normally used in combination with functions, and the function will not be executed before the event occurs!<BR>事件一般和函数是混合使用的,在事件发生以前一般函数是不会执行的!<BR><STRONG>Event Handlers<BR>事件的处理</STRONG><BR>New to HTML 4.0 was the ability to let HTML events trigger actions in the browser, like starting a JavaScript when a user clicks on an HTML element. Below is a list of the attributes that can be inserted into HTML tags to define event actions.<BR>HTML4.0的新属性就是可以在浏览器中激发HTML事件。当用户点击一个一个HTML元素时,可以激发JS。下面的列表列举了可以插入HTML标签中来定义事件动作的属性。<BR>FF: Firefox, N: Netscape, IE: Internet Explorer<BR>FF:火狐,N:网景,IE</P>
<P>
<TABLE class=ex id=table10 cellSpacing=0 width="100%" border=1>
<TBODY>
<TR>
<TH vAlign=top align=left width="20%">Attribute<BR>属性</TH>
<TH vAlign=top align=left width="68%">The event occurs when...<BR>事件发生时机</TH>
<TH vAlign=top align=left width="4%">FF</TH>
<TH vAlign=top align=left width="4%">N</TH>
<TH vAlign=top align=left width="4%">IE</TH></TR>
<TR>
<TD vAlign=top><A href="http://www.w3pop.com/learn/view/doc/jsref_onabort/" target=_top>onabort</A></TD>
<TD vAlign=top>Loading of an image is interrupted<BR>图片下载被打断时</TD>
<TD vAlign=top>1</TD>
<TD vAlign=top>3</TD>
<TD vAlign=top>4</TD></TR>
<TR>
<TD vAlign=top><A href="http://www.w3pop.com/learn/view/doc/jsref_onblur/" target=_top>onblur</A></TD>
<TD vAlign=top>An element loses focus<BR>元素失去焦点时</TD>
<TD vAlign=top>1</TD>
<TD vAlign=top>2</TD>
<TD vAlign=top>3</TD></TR>
<TR>
<TD vAlign=top><A href="http://www.w3pop.com/learn/view/doc/jsref_onchange/" target=_top>onchange</A></TD>
<TD vAlign=top>The content of a field changes<BR>框内容改变时</TD>
<TD vAlign=top>1</TD>
<TD vAlign=top>2</TD>
<TD vAlign=top>3</TD></TR>
<TR>
<TD vAlign=top><A href="http://www.w3pop.com/learn/view/doc/jsref_onclick/" target=_top>onclick</A></TD>
<TD vAlign=top>Mouse clicks an object<BR>鼠标点击一个对象时</TD>
<TD vAlign=top>1</TD>
<TD vAlign=top>2</TD>
<TD vAlign=top>3</TD></TR>
<TR>
<TD vAlign=top><A href="http://www.w3pop.com/learn/view/doc/jsref_ondblclick/" target=_top>ondblclick</A></TD>
<TD vAlign=top>Mouse double-clicks an object<BR>鼠标双击一个对象时</TD>
<TD vAlign=top>1</TD>
<TD vAlign=top>4</TD>
<TD vAlign=top>4</TD></TR>
<TR>
<TD vAlign=top><A href="http://www.w3pop.com/learn/view/doc/jsref_onerror/" target=_top>onerror</A></TD>
<TD vAlign=top>An error occurs when loading a document or an image<BR>当加载文档或图片时发生错误时</TD>
<TD vAlign=top>1</TD>
<TD vAlign=top>3</TD>
<TD vAlign=top>4</TD></TR>
<TR>
<TD vAlign=top><A href="http://www.w3pop.com/learn/view/doc/jsref_onfocus/" target=_top>onfocus</A></TD>
<TD vAlign=top>An element gets focus<BR>当元素获取焦点时</TD>
<TD vAlign=top>1</TD>
<TD vAlign=top>2</TD>
<TD vAlign=top>3</TD></TR>
<TR>
<TD vAlign=top><A href="http://www.w3pop.com/learn/view/doc/jsref_onkeydown/" target=_top>onkeydown</A></TD>
<TD vAlign=top>A keyboard key is pressed<BR>按下键盘按键时</TD>
<TD vAlign=top>1</TD>
<TD vAlign=top>4</TD>
<TD vAlign=top>3</TD></TR>
<TR>
<TD vAlign=top><A href="http://www.w3pop.com/learn/view/doc/jsref_onkeypress/" target=_top>onkeypress</A></TD>
<TD vAlign=top>A keyboard key is pressed or held down<BR>按下或按住键盘按键时</TD>
<TD vAlign=top>1</TD>
<TD vAlign=top>4</TD>
<TD vAlign=top>3</TD></TR>
<TR>
<TD vAlign=top><A href="http://www.w3pop.com/learn/view/doc/jsref_onkeyup/" target=_top>onkeyup</A></TD>
<TD vAlign=top>A keyboard key is released<BR>放开键盘按键时</TD>
<TD vAlign=top>1</TD>
<TD vAlign=top>4</TD>
<TD vAlign=top>3</TD></TR>
<TR>
<TD vAlign=top><A href="http://www.w3pop.com/learn/view/doc/jsref_onload/" target=_top>onload</A></TD>
<TD vAlign=top>A page or an image is finished loading<BR>页面或图片加载完成时</TD>
<TD vAlign=top>1</TD>
<TD vAlign=top>2</TD>
<TD vAlign=top>3</TD></TR>
<TR>
<TD vAlign=top><A href="http://www.w3pop.com/learn/view/doc/jsref_onmousedown/" target=_top>onmousedown</A></TD>
<TD vAlign=top>A mouse button is pressed<BR>鼠标被按下时</TD>
<TD vAlign=top>1</TD>
<TD vAlign=top>4</TD>
<TD vAlign=top>4</TD></TR>
<TR>
<TD vAlign=top><A href="http://www.w3pop.com/learn/view/doc/jsref_onmousemove/">onmousemove</A></TD>
<TD vAlign=top>The mouse is moved<BR>鼠标被移动时</TD>
<TD vAlign=top>1</TD>
<TD vAlign=top>6</TD>
<TD vAlign=top>3</TD></TR>
<TR>
<TD vAlign=top><A href="http://www.w3pop.com/learn/view/doc/jsref_onmouseout/" target=_top>onmouseout</A></TD>
<TD vAlign=top>The mouse is moved off an element<BR>鼠标离开元素时</TD>
<TD vAlign=top>1</TD>
<TD vAlign=top>4</TD>
<TD vAlign=top>4</TD></TR>
<TR>
<TD vAlign=top><A href="http://www.w3pop.com/learn/view/doc/jsref_onmouseover/" target=_top>onmouseover</A></TD>
<TD vAlign=top>The mouse is moved over an element<BR>鼠标经过元素时</TD>
<TD vAlign=top>1</TD>
<TD vAlign=top>2</TD>
<TD vAlign=top>3</TD></TR>
<TR>
<TD vAlign=top><A href="http://www.w3pop.com/learn/view/doc/jsref_onmouseup/" target=_top>onmouseup</A></TD>
<TD vAlign=top>A mouse button is released<BR>释放鼠标按键时</TD>
<TD vAlign=top>1</TD>
<TD vAlign=top>4</TD>
<TD vAlign=top>4</TD></TR>
<TR>
<TD vAlign=top><A href="http://www.w3pop.com/learn/view/doc/jsref_onreset/" target=_top>onreset</A></TD>
<TD vAlign=top>The reset button is clicked<BR>重新点击鼠标按键时</TD>
<TD vAlign=top>1</TD>
<TD vAlign=top>3</TD>
<TD vAlign=top>4</TD></TR>
<TR>
<TD vAlign=top><A href="http://www.w3pop.com/learn/view/doc/jsref_onresize/" target=_top>onresize</A></TD>
<TD vAlign=top>A window or frame is resized<BR>当窗口或框架被重新定义尺寸时</TD>
<TD vAlign=top>1</TD>
<TD vAlign=top>4</TD>
<TD vAlign=top>4</TD></TR>
<TR>
<TD vAlign=top><A href="http://www.w3pop.com/learn/view/doc/jsref_onselect/" target=_top>onselect</A></TD>
<TD vAlign=top>Text is selected<BR>文本被选择时</TD>
<TD vAlign=top>1</TD>
<TD vAlign=top>2</TD>
<TD vAlign=top>3</TD></TR>
<TR>
<TD vAlign=top><A href="http://www.w3pop.com/learn/view/doc/jsref_onsubmit/" target=_top>onsubmit</A></TD>
<TD vAlign=top>The submit button is clicked<BR>点击提交按钮时</TD>
<TD vAlign=top>1</TD>
<TD vAlign=top>2</TD>
<TD vAlign=top>3</TD></TR>
<TR>
<TD vAlign=top><A href="http://www.w3pop.com/learn/view/doc/jsref_onunload/" target=_top>onunload</A></TD>
<TD vAlign=top>The user exits the page<BR>用户离开页面时</TD>
<TD vAlign=top>1</TD>
<TD vAlign=top>2</TD>
<TD vAlign=top>3</TD></TR></TBODY></TABLE></P>
<P>&nbsp;</P>';</textarea><div id="jg"></div>
<script type="text/javascript">
var str=xs.value;
var reg="";function traversal(arr){
jg.innerHTML="共"+arr.length+"项:";
for(var i=0;i<arr.length;i++){
jg.innerText+="\n"+arr[i];
}
}function show(str){
jg.innerText+="\n"+str;
}//找出链接
function findLink(str){
var str=str;
var regLink=/<a[\w=\"\,\/\s:.]+>/ig;
var arLink=str.match(regLink);
traversal(arLink);
if(arLink){
var reHref=/href\=\"(.*)\"/gi;
for(var i=0;i<arLink.length;i++){ if(reHref.test(arLink[i])){
show(reHref.test(arLink[i])+i+RegExp.$1)
} }
}}findLink(str);
</script></body>
</html>

解决方案 »

  1.   

    当然会不同了
    show(i+RegExp.$1)与show(reHref.test(arLink[i])+i+RegExp.$1)
    不同的嘛
    首先是i和arLink[i]
    再则reHref.test
    仔细比较这两点应该能找到原因吧!
      

  2.   

    RegExp.$1是"静态"的属性..每次调用(RegExp对象).test()后,该属性就会变化....
    用于保存每次执行匹配后的分捕获的group...
      

  3.   

    两次输出不同确实是因为 正则表达式.test 这句花造成的,关键是他起这怎样的作用呢,4楼上说到了静态性,怎么体现的呢