js字符串格式化扩展方法

  平时使用js的时候会遇到很多需要拼接字符串的时候,如果是遇到双引号和单引号混合使用,经常会搞混。在C#中有string.Format方法,使用起来非常方便,也很容易理解,所以找到一种参考C#的format方法的实现js的字符串格式化。

  

/** * 替换所有匹配exp的字符串为指定字符串 * @param exp 被替换部分的正则 * @param newStr 替换成的字符串 */
String.prototype.replaceAll = function (exp, newStr) {
  return this.replace(new RegExp(exp, "gm"), newStr);
};

  


/** * 原型:字符串格式化 * @param args 格式化参数值 */ String.prototype.format = function(args) { var result = this; if (arguments.length < 1) { return result; } var data = arguments; // 如果模板参数是数组 if (arguments.length == 1 && typeof (args) == "object") { // 如果模板参数是对象 data = args; } for ( var key in data) { var value = data[key]; if (undefined != value) { result = result.replaceAll("\\{" + key + "\\}", value); } } return result; }

  

//两种调用方式
var template1="我是{0},今年{1}了";
var result1=template1.format("loogn",22);

var template2="我是{name},今年{age}了";
var result2=template2.format({name:"loogn",age:22});

  记录下来,方便以后查阅。

posted @ 2017-01-02 09:07  Norton.Li  阅读(409)  评论(0编辑  收藏  举报