正则居然能把数字转换成字母?
<script   language=javascript>  
 function   ReplaceDemo()    
 {    
 var   r,   re;      
 var   s=    "\74\123\103\122\111\120\141\126 "; 
 re   =   /(\S+)(\s+)(\S+)/g;    
 r   =   s.replace(re,    "$3$2$1 ");       
 return(r);    
 }    
 //alert   (ReplaceDemo()); 
  </script>  
 为什么用正则之后,这里的\74\123\103\122\111\120\141\126变成了“ <SCRIPaV” 
 请问这个是通过什么转换的?这里的数字是什么编码啊? 
 哪位大侠能提供一下把HTML都转化为这样数字的JAVASCRIPT函数么?
------解决方案--------------------八进制 
 alert( "\74\123\103\122\111\120\141\126 ");   
 十六进制 
 alert( "\x3C\x53\x43\x52\x49\x50\x61\x56 ");   
 UNICODE 
 alert( "\u003C\u0053\u0043\u0052\u0049\u0050\u0061\u0056 ");     
 跟正则没有什么关系,在这个例子中,正则没有做任何替换操作
------解决方案--------------------SORRY!没仔细看是八进制,我写的一个函数,只可以做参考,有可能有BUG 
   <script   language= "JScript ">   
   //alert(parseInt( "C ",2)) 
  function show(str) 
  { 
  	var tempstr=escape(str).replace(/%/g, ' '); 
  	var result=0; 
  	var strStatic= "0123456789ABCDEF " 
  	for(var i=0;i <tempstr.length;i++) 
  	{ 
  		var strEach=tempstr.charAt(i); 
  		result=parseInt(result)+strStatic.indexOf(strEach)*Math.pow(16,tempstr.length-i-1); 
  	} 
  	return result.toString(8) 
  } 
  alert(show( " < "))    
    </script>
------解决方案--------------------刚才时间比较紧,现在又完善了下 
   <script   language= "JScript ">   
  function show(str) 
  { 
  	var result= " "; 
  	var strStatic= "0123456789ABCDEF " 
  	for(var k=0;k <str.length;k++) 
  	{ 
  		if(escape(str.charAt(k)).indexOf( '% ')!=-1) 
  		{ 
  			tempstr=escape(str.charAt(k)).replace(/%/, ' ') 
 		 	var resultEach=0; 
 		 	for(var i=0;i <tempstr.length;i++) 
 		 	{ 
 		 		var strEach=tempstr.charAt(i); 
 		 		resultEach=parseInt(resultEach)+strStatic.indexOf(strEach)*Math.pow(16,tempstr.length-i-1); 
 		 	} 
 		 	result+= "\\ "+resultEach.toString(8) 
  		} 
  		else 
  		{ 
  			result+= "\\ "+str.charCodeAt(k).toString(8) 
  		} 
  	} 
  	return result 
  } 
  alert(show( " <SCRIPaV ")) 
    </script>