// some missing String functions

String.prototype.ltrim = function (clist) {
  // Wurde eine Zeichenkette mit den zu entfernenden
  // Zeichen übergeben?
  if (clist)
    // In diesem Fall sollen nicht Whitespaces, sondern
    // alle Zeichen aus dieser Liste gelöscht werden,
    // die am Anfang des Strings stehen.
    return this.replace (new RegExp ('^[' + clist + ']+'), '');
  // Führende Whitespaces aus dem String entfernen
  // und das resultierende String zurückgeben.
  return this.replace (/^\s+/, '');
}

String.prototype.rtrim = function (clist) {
  // Zeichenkette mit den zu entfernenden Zeichen angegeben?
  if (clist)
    // Zeichen aus der Liste, die am Ende des String stehen
    // löschen.
    return this.replace (new RegExp ('[' + clist + ']+$'), '');
  // Whitespaces am Ende des Strings ertfernen und dann das Ergebnis
  // dieser Operation zurückgeben.
  return this.replace (/\s+$/, '');
}

String.prototype.trim = function (clist) {
  // Wird der Parameter clist angegeben, so werden statt der Whitespaces
  // die in dieser Variablen angegebenen Zeichen "getrimmt".
  if (clist)
    // Führende und abschließende Zeichen aus der Liste entfernen.
    return this.ltrim (clist).rtrim (clist);
  // Whitespaces vom Anfang und am Ende entfernen
  return this.ltrim ().rtrim ();
};

