1. 程式人生 > >JS的replace 使用 第二個引數為函式

JS的replace 使用 第二個引數為函式


var reg=new RegExp("(http://www.qidian.com/BookReader/)(\\d+),(\\d+).aspx","gmi"); 
var url="http://www.qidian.com/BookReader/1017141,20361055.aspx"; 
//方式一,最簡單常用的方式 
var rep=url.replace(reg,"$1ShowBook.aspx?bookId=$2&chapterId=$3"); 
alert(rep); 
//方式二 ,採用固定引數的回撥函式 
var rep2=url.replace(reg,function(m,p1,p2,p3){return p1+"ShowBook.aspx?bookId="+p3+"&chapterId="+p3}); 
alert(rep2); 
//方式三,採用非固定引數的回撥函式 
var rep3=url.replace(reg,function(){var args=arguments; return args[1]+"ShowBook.aspx?bookId="+args[2]+"&chapterId="+args[3];}); 
alert(rep3);