Bonsai: Leerzeichen

Wie kann ich denn bei einem String die Leerzeichen hinten entfernen?
Vielen Dank, Bonsai

  1. Schau' einfach mal hier rein:

    http://www.apriori-it.co.uk/Trim.asp

    1. gruss mark,

      das script, auf der von Dir verlinkten seite ist schon recht uebel.

      erstens sind regulaere ausdruecke aufgrund ihrer maechtigkeit wesentlich
        besser fuer die loesung des gestellten problems (_alle_arten_ von leerzeichen
        sollen rechts entfernt werden) geeignet.
        zweitens kann man sich problemlos die objektmethoden selber erschaffen,
        welche man von anderen sprachen her schaetzt und in javascript dann
        vermisst (in diesem falle "String.rightTrim").

      regulaerer ausdruck, um alle moeglichen leerzeichen in einem string zu finden:

      ~~~javascript var regX = /\s+/g;
        /*
          \s  : ein einzelnes aus einer vielzahl von moeglichen leerzeichen;
          \s+ : mindestens ein leerzeichen oder eine squenz von leerzeichen;
          g   : das "global"-flag veranlasst eine suche ueber den gesamten term;
        */

        
        variationen des gerade gegebenen beispiels:  
        
        ~~~javascript
      var regX = /\s+$/; // einzelnes leerzeichen oder leerzeichen-sequenz am stringende;  
        var regX = /^\s+/; // einzelnes leerzeichen oder leerzeichen-sequenz am stringanfang;
      

      damit liesse sich schon eine

      ~~~javascript function rightTrim (str) {
          return str.replace(/\s+$/,"");
        }

        
        bauen, die einen string-parameter "str" erwartete  
        und diesen nach efolgreicher behandlung zurueckgaebe.  
        
        
        um nun den sprachkern von javascript um die String-methoden "leftTrim", "rightTrim",  
        "basicTrim" und "superTrim" zu erweitern, bedient man sich des prototypen-konzepts  
        dieser sprache.  
        der in jeder javascript-api vorhandene konstruktor "`String`{:.language-javascript}" bekommt die gerade  
        genannten eigenschaften als funktions-objekte so zugewiesen, dass diese automatisch  
        methoden eines jeden neuen string-objekts sind:  
        
        
        ~~~javascript
      String.prototype.leftTrim = function () {  
          return (this.replace(/^\s+/,""));  
        };  
        String.prototype.rightTrim = function () {  
          return (this.replace(/\s+$/,""));  
        };  
      //kombiniert "leftTrim" und "rightTrim";  
        String.prototype.basicTrim = function () {  
          return (this.replace(/\s+$/,"").replace(/^\s+/,""));  
        };  
      //dampft leerzeichen(-sequenzen) innerhalb einer zeichenkette auf ein einzelnes "space" ein;  
        String.prototype.superTrim = function () {  
          return(this.replace(/\s+/g," ").replace(/\s+$/,"").replace(/^\s+/,""));  
        };  
        
      //zugabe: entfernt alle leerzeichen aus einer zeichenkette;  
        String.prototype.removeWhiteSpaces = function () {  
          return (this.replace(/\s+/g,""));  
        };
      

      der anwendungsfall saehe dannach so aus:

      ~~~javascript var myStr = "       \n \t  hallo \n\t\ welt  \n";

      alert("+++" + myStr.leftTrim() + "+++");
        alert("+++" + myStr.rightTrim() + "+++");
        alert("+++" + myStr.basicTrim() + "+++");
        alert("+++" + myStr.superTrim() + "+++");
        alert("+++" + myStr.removeWhiteSpaces() + "+++");

        
        
        
        by(t)e by(t)e - peterS. - pseliger@gmx.net  
        
        
      
      -- 
      "Because objects in JavaScript are so flexible, you will want to think differently about class hierarchies.  
      Deep hierarchies are inappropriate. Shallow hierarchies are efficient and expressive." - Douglas Crockford  
        
      ie:( fl:) br:> va:( ls:& fo:) rl:| n3;} n4:} ss:} de:µ js:} mo:? zu:]