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

一小段代码
var   s   =   "A( 'a1 ')=A( 'b1 ')+A( 'b2 ') ";
var   Ar   =   [];
s.replace(/ '([^ ']*?) '/g,   function($0,   $1){Ar.push($1)});
alert(Ar)
-------------
详细解释这段代码,谢谢

------解决方案--------------------
/ '([^ ']*?) '/ 匹配两个 ' '之间的文字,/ '([^ ']*?) '/g ,g全局匹配
function($0, $1){Ar.push($1)} ,$1代表/ '([^ ']*?) '/ 两个()间匹配的字符
------解决方案--------------------
倒...

<script type= "text/javascript ">
// <![CDATA[
var temp = ' ';
var num=1;
var num_=1;
var mark= '# ';
var _ar=[ 'a ', 'b ', 'c ', 'b ', 'a ', 'e ', 'c ', 'ab '].join(mark);

///.*?\$|.*?$/g
var _re=new RegExp( '.*? '+mark.replace(/(.)/g, '\\$1 ')+ '|.*?$ ', 'g ');
var _re_=new RegExp(mark.replace(/(.)/g, '\\$1 ')+ '$ ');

_ar.replace(_re,function(){
if(temp.indexOf(arguments[0]) == -1) temp += arguments[0];
for(var i=0; i <arguments.length; num++, i++){
document.write(num, ' ',num_, '. ',i, '. ', arguments[i], ' <br/> ');
}
document.write( ' <p/> ');
num_++
}
);
document.write(temp.split(mark), ' <br/> ');
//]]>
</script>