JS字符串拼接方法

为了解决拼接字符串的时候混乱的加号,根据printf函数设计了这个buildString函数

function buildString(str,paraList){
    //占位符前后修饰符
	var prefix="\\{\\{", surfix="\\}\\}";
	//正则表达式字符串
	var regStr = prefix + "(.+?)" + surfix;
	//新建正则表达式
	var regExp = new RegExp(regStr,"mg");
	
	if (!str){
        //没有参数时返回空字符串
		return "";
	}
	else if (str && arguments.length == 1){
        //只有一个参数时返回本身
		return str;
	}
	else if (arguments.length >= 2 && ((typeof paraList) == "string")){
        //字符串传参数时转换参数变成数组
		paraList = Array.prototype.splice.call(arguments,1);
		return bulidStr(str,paraList);
	}else{
        //数组或对象传参数
		return bulidStr(str,paraList);
	}
	//功能函数,替换并返回
	function bulidStr(str,paraList){
		var ret = str.replace(regExp,function(full,key){
			return paraList[key];
		});
		return ret;
	}
}

使用:

//使用对象传参,占位符使用属性名
var id="myID",myclass="myclass";
buildString("<div id='{{id}}' class='{{myclass}}' ></div>",{id:id,myclass:myclass});
//输出: "<div id='myID' class='myclass' ></div>"

//使用数组传参,占位符使用数组下标
var id="myID",myclass="myclass";
buildString("<div id='{{0}}' class='{{1}}' ></div>",[id,myclass]);
//输出: "<div id='myID' class='myclass' ></div>"

//使用字符串传参,占位符使用下标,字符串一次传入,位置从0开始
var id="myID",myclass="myclass";
buildString("<div id='{{0}}' class='{{1}}' ></div>",id,myclass);
//输出: "<div id='myID' class='myclass' ></div>"
posted @ 2016-03-07 13:12  南京韶邵  阅读(1450)  评论(0编辑  收藏  举报