一直用C#編程,在日常字元串拼接中string.Format()一直是個很好用很常用的方法,不用自己+++,既影響開發效率也影響可讀性 然而在js中並沒有這樣的函數可供使用,so整理了一個js的字元串format函數供項目的日常使用 雖然並不是很完善也不能提升拼接效率,但是足夠滿足開發過程中的工作效 ...
一直用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);
測試結果: