در سی شارپ یک متودی وجود داره به نام String.format که می تونه چندین متغیر رو به string (متن) تبدیل کنه و اون ها رو در یک string دیگه جا سازی کنه.

حالا چیزی که برای من جالبه اینه که من چنین چیزی رو برای زبون جاوا اسکریپت پیدا کردم

برای مثال در سی شارپ

String.format("Hi, Today is {0} & yesterday was {1}","Good","Bad");
String.format("It is now {0:d} at {0:t}", DateTime.Now);
که نتیجه این میشه

Hi, Today is Good & yesterday was Bad
It is now 4/10/2015 at 10:04 AM

حالا من بعد از مدت ها در سایت گیت هاب متوجه شدم که یک نفر چنین ابزاری رو برای جاوا اسکریپت ارائه داده منم که واقعا به چنین چیزی نیاز داشتم، رفتم امتحانش کردم و دقیقا همون چیزی بود که من دنبالش بودم.

روش کارش هم اینطوریه:

sprintf("Hello %s", "John");
sprintf("Current timestamp: %d", Date.now);
که نتیجه این میشه

Hello John
Current timestamp: 1440779783924

البته من از قبل با این روش کار می کردم :
if (!String.prototype.format) {
String.prototype.format = function() {
var args = arguments;
return this.replace(/{(\d+)}/g, function(match, number) {
return typeof args[number] != 'undefined' ? args[number] : match ;
});
};
}
که این فقط کار قرار دادن string در string رو انجام میداد و به هوشمندی sprintf نبود

روش کارش اینه:

'Hello {0},Hello {1}'.format('John','Michael');
و نتیجه:

Hello John, Hello Michael