倒... <script type="text/javascript"> //<![CDATA[ var temp = ''; var num=1; var num_=1; var ='#'; var _ar=['a', 'b', 'c', 'b', 'a', 'e', 'c', 'ab'].join(); ///.*?\$|.*?$/g var _re=new RegExp('.*?'+.replace(/(.)/g,'\\$1')+'|.*?$','g'); var _re_=new RegExp(.replace(/(.)/g,'\\$1')+'$');
function($0, $1){Ar.push($1)} ,$1代表/'([^']*?)'/ 两个()间匹配的字符
两个' '之间的文字,他用()括起来,以便$1可以取到
请问这个$是什么,0是什么,谢谢你的回答
1.5.1 分组
分组是通过用一系列括号包围一系列字符、字符类以及量词来使用的。如:
var str = /(Woody)?/gi;
1.5.2 反向引用
如果模式中使用了分组,通过匹配之后,每个分组都存放在一个特殊的地方以备将来使用,这些存储在分组中的特殊值,称之为反向引用,反向引用是按照从左到右遇到的左括号字符的顺序进行创建和编号的。如:(A?(B?))模式产生的反向引用为(A?(B?))、(B?);可以通过$1、$2引用这些值。
//<![CDATA[
var temp = '';
var num=1;
var num_=1;
var ='#';
var _ar=['a', 'b', 'c', 'b', 'a', 'e', 'c', 'ab'].join(); ///.*?\$|.*?$/g
var _re=new RegExp('.*?'+.replace(/(.)/g,'\\$1')+'|.*?$','g');
var _re_=new RegExp(.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(),'<br/>');
//]]>
</script>
第一个参数是 全局匹配
一个() 对应 一个参数
(a)(b) = $0, $1, $2$0 对应全局匹配... = (a)(b)
$1 = (a)
$2 = (b)
分别代表a全局匹配$0,b第1个分组$1,c第2个分组$2,,d第3个分组$3