js字符串使用占位符拼接

由于几个老项目中经常用到jquery拼接字符串,各种引号很disgusting

所以写了一个占位符拼接的的方法

String.prototype.signMix= function() {
	if(arguments.length === 0) return this;
	var param = arguments[0], str= this;
	if(typeof(param) === 'object') {
		for(var key in param)
			str = str.replace(new RegExp("\\{" + key + "\\}", "g"), param[key]);
		return str;
	} else {
		for(var i = 0; i < arguments.length; i++)
			str = str.replace(new RegExp("\\{" + i + "\\}", "g"), arguments[i]);
		return str;
	}
}
var str1 = "hello {0}".signMix("world"); //hello world

var str2 = "{0}总冠军, {1}总冠军".signMix("湖人", "骑士"); // 湖人总冠军,骑士总冠军

var user = {name: "James",sex: "male",age: 34};
var str3 = "史上第一个30000+8000+8000球员:{name}, 性别{sex}, 今年{age}岁".signMix(user); 
//史上第一个30000+8000+8000球员:James, 性别male, 今年34岁

var optionData= {name: "flower",selected:true, spell: "abc", value:"1"};
var optionStr='<option value="{value}" match="{spell}" selected="{selected}">{name}</option>'.signMix(optionData)
//<option value="1" match="abc" selected="true">flower</option>

ES6 反向单引号` 了解一下/微笑脸

var obj={
  name: "laker",
  msg: "总冠军"
}
var message1=`NBA final, ${obj.name}, ${obj.msg}` // NBA final, laker, 总冠军
posted @ 2018-03-23 11:25  以梦为马papapa  阅读(32222)  评论(0编辑  收藏  举报