js字符串格式化扩展方法

时间:2023-03-08 20:28:51

  平时使用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});

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