replace笔记

分类: Javascript   发布于: 2014.08.21, 15:03, by  usual  查看:4,542   |   评论: 发表留言

/*
 * http://meigong.org/?p=491替换为http://meigong.org/491.html
*/
// stringObject.replace(regexp/substr,replacement);

var reg=/(meigong.org\/)\?p=(\d+)/i;
var url="http://meigong.org/?p=491";

var result1=url.replace(reg,"$1$2.html");
console.log(result1);//http://meigong.org/491.html
// $1表示reg中第一个子表达式匹配的值,即(meigong.org\/)匹配的值,返回meigong.org/
// $2表示reg中第二个子表达式匹配的值,即(\d+)匹配的值,返回491
// $n++以此类推

var result2=url.replace(reg,function(all,arg1,arg2,arg3,arg4){
	console.log(arguments[0]);//  meigong.org/?p=491   第一个参数为匹配到的字符串
	console.log(arguments[1]);//  meigong.org/  第二,三个参数为各子表达式匹配的值,类似于$1,$2,可以有0个或更多
	console.log(arguments[2]);//  491
	console.log(arguments[arguments.length-2]);//  7 倒数第二个参数为匹配的字符串在 stringObject 中出现的位置
	console.log(arguments[arguments.length-1]);//  http://meigong.org/?p=491 最后一个参数为 stringObject本身
	return arg1+arg2+".html";
});
console.log(result2);//http://meigong.org/491.html