Skip to content

Instantly share code, notes, and snippets.

@geminorum
Forked from rmariuzzo/sprintf.js
Last active October 10, 2017 23:30
Show Gist options
  • Save geminorum/ebb48ff0c0df3876e58610dbb5a60f0f to your computer and use it in GitHub Desktop.
Save geminorum/ebb48ff0c0df3876e58610dbb5a60f0f to your computer and use it in GitHub Desktop.
Javascript sprintf
// @SOURCE: https://stackoverflow.com/a/4673436/4864081
// First, checks if it isn't implemented yet.
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
;
});
};
}
// "{0} is dead, but {1} is alive! {0} {2}".format("ASP", "ASP.NET")
// ASP is dead, but ASP.NET is alive! ASP {2}
// If you prefer not to modify String's prototype:
if (!String.format) {
String.format = function(format) {
var args = Array.prototype.slice.call(arguments, 1);
return format.replace(/{(\d+)}/g, function(match, number) {
return typeof args[number] != 'undefined'
? args[number]
: match
;
});
};
}
// String.format('{0} is dead, but {1} is alive! {0} {2}', 'ASP', 'ASP.NET');
// ASP is dead, but ASP.NET is alive! ASP {2}
// Simple and minimal `sprintf` function in JavaScript.
function sprintf(format) {
var args = Array.prototype.slice.call(arguments, 1);
var i = 0;
return format.replace(/%s/g, function() {
return args[i++];
});
}
@geminorum
Copy link
Author

also sprintf-js

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment