Posted By

jswaringen on 10/17/12


Tagged

javascript stringbuilder


Versions (?)

JavaScript: StringBuilder


 / Published in: JavaScript
 

Emulates the StringBuilder() function found in .NET Languages

  1. /*****************************************************************
  2.  * Stringbuilder Class - emulates the C#/VB.NET stringbuilder
  3.  * @constructor
  4.  *****************************************************************/
  5. function StringBuilder() {
  6. var strings = [];
  7.  
  8. this.append = function (string)
  9. {
  10. string = verify(string);
  11. if (string.length > 0) {
  12. strings[strings.length] = string;
  13. }
  14. };
  15.  
  16. this.appendLine = function (string)
  17. {
  18. string = verify(string);
  19. if (this.isEmpty())
  20. {
  21. if (string.length > 0) {
  22. strings[strings.length] = string;
  23. }
  24. else {
  25. return;
  26. }
  27. }
  28. else {
  29. strings[strings.length] = string.length > 0 ? "\r\n" + string : "\r\n";
  30. }
  31. };
  32.  
  33. this.clear = function () { strings = []; };
  34.  
  35. this.isEmpty = function () { return strings.length == 0; };
  36.  
  37. this.toString = function () { return strings.join(""); };
  38.  
  39. var verify = function (string)
  40. {
  41. if (!defined(string)) {
  42. return "";
  43. }
  44. if (getType(string) != getType('string')) {
  45. return String(string);
  46. }
  47. return string;
  48. };
  49.  
  50. var defined = function (el)
  51. {
  52. return el != null && typeof(el) != "undefined";
  53. };
  54.  
  55. var getType = function (instance)
  56. {
  57. if (!defined(instance.constructor)) {
  58. throw new Error("Unexpected object type");
  59. }
  60. var type = String(instance.constructor).match(/function\s+(\w+)/);
  61.  
  62. return defined(type) ? type[1] : "undefined";
  63. };
  64. }

Report this snippet  

You need to login to post a comment.