首页 > 技术文章 > JavaScript字符串Format

xinxin-csharp 2018-01-06 23:24 原文

一直用C#编程,在日常字符串拼接中string.Format()一直是个很好用很常用的方法,不用自己+++,既影响开发效率也影响可读性

然而在js中并没有这样的函数可供使用,so整理了一个js的字符串format函数供项目的日常使用

虽然并不是很完善也不能提升拼接效率,但是足够满足开发过程中的工作效率和可读性

 

通过String类型的原型prototype新增一个format方法,方便使用

String.prototype.format = function () {
    if (arguments.length === 0) return this;
    var result = this;
    if (arguments.length === 1 && typeof arguments[0] === 'object') {
        for (var key in arguments[0]) {
            if (arguments[0][key] === undefined) continue;
            result = result.replace(new RegExp("({" + key + "})", "g"), arguments[0][key]);
        }
    } else {
        for (var i = 0; i < arguments.length; i++) {
            if (arguments[i] === undefined) continue;
            result = result.replace(new RegExp("({[" + i + "]})", "g"), arguments[i]);
        }
    }
    return result.toString();
}

测试一下:

'Welcome to {city}! My name is {name}.'.format({ city: '阜宁', name: '恋禾梦颖' });
'Total num is {0},total price is ${1}'.format(2, 10);

测试结果:

 

推荐阅读