In vielen Programmiersprachen gibt es eine Funktion, deren Aufgabe es ist, führende und anschließende Leerzeichen (Whitespaces) aus einer Zeichenkette zu entfernen. Diese Funktion trägt meist den Namen trim. Eine solche Methode ist allerdings im JavaScript String-Objekt nicht vorgesehen.
An dieser Stelle soll dies nachgeholt werden. Dazu bestehen mehrere Möglichkeiten, die hier dargelegt und letztlich auch umgesetzt werden sollen. Eine Möglichkeit der Umsetzung ist die, dass eine allgemeine Funktion implementiert wird, welche die gewünschte Aufgabe erfüllt. Darüber hinaus kann trim auch als Methode in das JavaScript String-Objekt eingefügt werden.
Die Integration von trim in JavaScript als Funktion soll im folgenden Code-Abschnitt realisiert werden. Um die Leerzeichen und andere Whitespaces herauszufiltern bedient sich die Funktion trim der String-Methode replace. Dies geschieht in zwei Stufen. Als erstes werden die führenden Leerzeichen gelöscht – es wird, falls vorhanden auch ein einzelnes Whitespace gelöscht; ist keins vorhanden, so geschieht gar nichts. Das durch diesen Aufruf gelieferte Ergebnis dient als Eingabe für den zweiten Aufruf der Methode replace, die alle angehängten Whitespaces löscht. Die hier angegebenen regulären Ausdrücke matchen dabei jeweils alle Whitespaces (\s+) am Anfang und am Ende der übergebenen Zeichenkette und löschen diese aus dem String heraus (die Zeichen werden durch das String '', also ein leeres String, ersetzt.
<script language="javascript" type="text/javascript"> <!-- // JavaScript-Bereich für ältere Browser auskommentieren // Führende und Abschließende Whitespaces (Leerzeichen, Tabulatoren, ...) // aus der übergebenen Zeichenkette entfernen. function trim (zeichenkette) { // Erst führende, dann Abschließende Whitespaces entfernen // und das Ergebnis dieser Operationen zurückliefern return zeichenkette.replace (/^\s+/, '').replace (/\s+$/, ''); } // --> </script>
Im Folgenden Code-Abschnitt wird die Methode ltrim implementiert. Dabei wird auch die Möglichkeit implementiert, andere Zeichen als Whitespaces aus der Zeichenkette zu löschen, wenn diese am Anfang der Zechenkette stehen. Eine solche Funktionalität bietet beispielsweise auch die tlrim-Funktion unter PHP. Die Angabe einer Liste von zu "trimmenden" Zeichen ist allerdings auch hier nicht zwingend erforderlich.
Wird eine Liste mit Zeichen an die Methode übergeben, so wird mit Hilfe des RegExp-Objekts ein regulärer Ausdruck zusammengestellt, mit dessen Hilfe die zu entfernenden Zeichen gelöscht werden, wenn sie am Anfang der Zeichenkette stehen. Die unten angegebene Methode arbeitet stets auf Basis des Strings, über das sie aufgerufen wird. Wird keine Zeichenliste an die Methode übergeben, so werden alle führenden Whitespaces im String gelöscht. Das Ergebnis dieser Operation wird auf Rückgabewert geliefert.
<script language="javascript" type="text/javascript"> <!-- // JavaScript-Bereich für ältere Browser auskommentieren // Methode ltrim (left trim) zum String-Objekt hinzufügen // Diese Methode löscht, ausgehend vom Anfang der Zeichenkette, // alle Zeichen, die bei deren Vorkommen entfernt werden sollen. // Der Parameter clist ist optional und gibt eine Liste von Zeichen vor, // die von der Methode herausgelöscht werden sollen. // Wird dieser Parameter nicht übergeben, so werden alle Whitespaces // gelöscht, die am Anfang des Strings stehen. 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+/, ''); } // --> </script>
Die nächste Erweiterung des String-Objekts ist die Methode rtrim. Sie bewirkt ähnliches wie die ltrim-Methode, mit dem Unterschied, dass nicht die auftretenden Leerzeichen am Anfang des String gelöscht werden, sondern die, welche am Schluß des Strings gespeichert sind. Auch hier besteht also die Möglichkeit – wie bei rtrim unter PHP – eine Reihe von Zeichen anzugeben, die von der Methode als zu löschende Zeichen definiert werden.
<script language="javascript" type="text/javascript"> <!-- // JavaScript-Bereich für ältere Browser auskommentieren // Die Methode rtrim (right trim) erweitert ebenfalls das String-Objekt. // Im Gegensatz zu ltrim wird hier aber vom Ende des Strings ausgegangen. // Es werden also alle Whitespaces bzw. die Zeichen aus der übergebenen // Zeichenliste gelöscht, die am Ende des Strings stehen. 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+$/, ''); } // --> </script>
Im Prinzip ist die unter diesem Abschnitt folgende Funktion trim eine Zusammenstellung aus der Methode ltrim und der Methode rtrim. Sie nimmt die selben Parameter entgegen, wie die beiden anderen, so dass auch sie mit einer Menge von Zeichen beschickt werden kann, die am Anfang, wie am Ende der Zeichenkette entfernt werden sollen. Auch hier wird eine ähnliche Funktionalität implementiert, wie es bei der PHP-Funktion trim der Fall ist. Dem Inneren der Methode können Sie entnehmen, dass sie nichts anderes macht, als die Methoden ltrim und rtrim hintereinander aufzurufen. Das Ergebnis ist demnach eine Zeichenkette, aus welcher die führenden und abschließenden Whitespaces – oder aber die Zeichen aus der Zeichenliste für die das selbe gilt – entfernt wurden.
<script language="javascript" type="text/javascript"> <!-- // JavaScript-Bereich für ältere Browser auskommentieren // Implementierung einer JavaScript trim Function als Erweiterung // des vordefinierten JavaScript String-Objekts. // Die Methode bedient sich den zuvor definierten Methoden ltrim // und rtrim und kombiniert diese miteinander. // Mit dem Parameter clist kann man auch hier eine Liste von Zeichen // angeben, die vom Anfang, wie auch vom Ende der Zeichenkette entfernt // werden soll. 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 (); }; // --> </script>
Im unteren Beispielcode soll der Umgang mit den implementierten Methoden und der trim Funktion demonstriert werden. Dazu werden als erstes zwei String-Variablen definiert, deren Inhalt als Testdaten verwendet wird. Die dem Objekt Document angehörende Methode write wird wieder einmal zur Ausgabe genutzt. In den write-Aufrufen wird die jeweilige Methode bzw. Funktion aufgerufen und die gelieferten Ergebnisse ausgegeben.
<script language="javascript" type="text/javascript"> <!-- // JavaScript-Bereich für ältere Browser auskommentieren // Einige Stringvariablen zur demonstration der trim-Funktionen var s1 = ' vor und hinter mir sind Leerzeichen '; var s2 = '..--.--..vor und hinter mir sind zu loeschende Zeichen..--.--..'; // Test der JavaScript trim Function document.write ('¦' + trim (s1) + '¦<br>'); // Test der Methode String.ltrim document.write ('¦' + s1.ltrim () + '¦<br>'); document.write (s2.ltrim ('.-') + '<br>'); // Test der Methode String.rtrim document.write ('¦' + s1.rtrim () + '¦<br>'); document.write (s2.rtrim ('.-') + '<br>'); // Test der Trim-Methode des String-Objekts (String.trim) document.write ('¦' + s1.trim () + '¦<br>'); document.write (s2.trim ('.-')); // --> </script>
¬ Menu
¬ Gratis Download
¬ Seminare
¬ Yoga
¬ Insolvenzrecht
¬ News
15.08.2008Schleifen in PHP: Die While-Schleife » mehr 13.08.2008Nutzung von Variablen unter PHP: Definition, Sichtbarkeit und vordefinierte Variablen » mehr 11.08.2008Ausgabe von Datum und Zeit mit PHP nach Konvertierung in ein String » mehr Eine vollständige News-Liste ist auf der News-Seite zugänglich.
¬ Foren
¬ Buchtipp
Ajax in action
Weitere JavaScript Literaturtipps finden Sie unter JavaScript Bücher
Webdesign •
Beratung Internetseite •
Programmierung Internetseite