JSFiddle - React, Tailwind, and code Playground

by Emre Erkan

HTML

<div id="results"></div>

CSS

textarea { display: block; width: 350px; height: 80px; }

JavaScript

var StringBuilder =
  function(v) {
    this.s = [];
    this.append(v);
  };
StringBuilder.prototype.append =
  function (v) {
    if(v)
      this.s.push(v);
  };
StringBuilder.prototype.appendLine = 
  function (v) {
    if(v)
      this.s.push(v);
    this.s.push("\r\n");
  };
StringBuilder.prototype.appendFormat = 
  function() {
    var p = /({?){([^}]+)}(}?)/g;
    var a = arguments, v = a[0], o=false;
    
    if (a.length == 2) {
      if (typeof a[1] == 'object' && a[1].constructor != String) {
        a = a[1];
        o = true;
      }
    }
    var s = v.split(p);
    var r = [];
    for (var i = 0; i < s.length; i += 4) {
      r.push(s[i]);
      if (s.length > i + 3) {
        if (s[i + 1] == '{' && s[i + 3] == '}')
          r.push(s[i + 1], s[i + 2], s[i + 3]);
        else
          r.push(s[i + 1], a[o ? s[i + 2] : parseInt(s[i + 2],10)+1], s[i + 3]);
      }
    }

    this.s.push(r.join(''));
  };
StringBuilder.prototype.clear = 
  function() {
    this.s.length = 0;
  };
StringBuilder.prototype.toString = 
  function() {
    return this.s.length == 0 ? "" : this.s.join("");
  };

var sb = new StringBuilder();
sb.append("Klasik");
$('#results').append('<textarea cols="30" rows="3">' + sb.toString() + '</textarea>');
sb = new StringBuilder('Constructor\' da metin kullanımı');
sb.append(' örneği');
sb.appendLine();
sb.appendLine('Yeni satır da çalışıyor');
sb.append('Bu örnekte olduğu gibi!');
$('#results').append('<textarea cols="30" rows="3">' + sb.toString() + '</textarea>');
sb.clear();
sb.appendLine('clear ile temizlenmiş StringBuilder kullanımı');
sb.appendFormat('String Format: Bu örnekte {0} farklı {1} kullandım', 2, 'parametre');
$('#results').append('<textarea cols="30" rows="3">' + sb.toString() + '</textarea>');
sb.clear();
sb.appendFormat('JSON olarak da veri yazılabilir. Sepette {elma} elma ve {armut} armut var.', { elma: 2, armut: 4});
$('#results').append('<textarea cols="30" rows="3">' + sb.toString() + '</textarea>');