Advertisement
Guest User

Untitled

a guest
Dec 19th, 2014
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.83 KB | None | 0 0
  1. // examples;
  2. // "{f} {b}".printf({f: "foo", b: "bar"});
  3. // "%s %s".printf(["foo", "bar"]);
  4. // "%s %s".printf("foo", "bar");
  5. String.prototype.printf = function (obj) {
  6. var useArguments = false;
  7. var _arguments = arguments;
  8. var i = -1;
  9. if (typeof _arguments[0] == "string") {
  10. useArguments = true;
  11. }
  12. if (obj instanceof Array || useArguments) {
  13. return this.replace(/\%s/g,
  14. function (a, b) {
  15. i++;
  16. if (useArguments) {
  17. if (typeof _arguments[i] == 'string') {
  18. return _arguments[i];
  19. }
  20. else {
  21. throw new Error("Arguments element is an invalid type");
  22. }
  23. }
  24. return obj[i];
  25. });
  26. }
  27. else {
  28. return this.replace(/{([^{}]*)}/g,
  29. function (a, b) {
  30. var r = obj[b];
  31. return typeof r === 'string' || typeof r === 'number' ? r : a;
  32. });
  33. }
  34. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement