При использовании JavaScript иногда встает вопрос о необходимости форматирования строки. Но, к сожалению, никакой стандартной функции для этого нет.

Поэтому, пришлось ее написать:

String.prototype.format = String.prototype.f = function(){
	var args = arguments;
	return this.replace(/\{(\d+)\}/g, function(m,n){
		return args[n] ? args[n] : m;
	});
};

Пример использования:

var s1 = "My name: {0}".f("Neo");
console.log(s1);
var s2 = "My name: {0}, age: {1}!".f("Neo", 20);
console.log(s2);

UPD: ES 6

const stringFormat = (s, a) => s.replace(/\{(\d+)\}/g, (m, n) => a[n] || m);

Теги: сниппет, javascript

Редактировать