Murphy's World @ home

server holyghost alias dyndns.murphys-world.de

START
Projekt Murphy's CMSmini JavaScript TIPPS & TRICKS GeoCaching
NEWS TERMINE FUNSTUFF LINKS
VIP-BEREICH KONTAKT IMPRESSUM

JavaScript Tipps & Tricks
String-Funktionen trim(), ltrim() und rtrim()

Beschreibung:

Mit den Funktionen trim(), ltrim() und rtrim() können nicht sichtbare Zeichen aus einer Zeichenkette entfernt werden. Zu den nicht sichtbaren Zeichen - auch Whitespaces genannt - gehören z.B. Leerzeichen, Tabulatoren und Zeilenumbrüche. Die Funktionen trim() entfernt diese Zeichen am Anfang und am Ende, ltrim() nur am Anfang und rtrim() nur am Ende eines Strings.

Abhängig von der verwendeten Sprachversion sind zwei unterschiedliche Lösungen für die Funktionen möglich. Entweder wählt man die elegante Methode über reguläre Ausdrücke, welche mindestens Javascript 1.2 bzw. die äquivalente JScript Version voraussetzt, oder man entscheidet sich für die etwas langsamere Variante mit Zeichenkettenvergleichen, die dafür aber universell bei allen JavaScript und JScript Versionen funktionieren sollte.

Die Funktionen erwarten den zu bereinigenden String als einzigen Parameter.

 

Syntax:

string trim ( string str )

string ltrim ( string str )

string rtrim ( string str )

 

Übergabewerte:

str = der zu bereinigende String

 

Quelltext:

ab JavaScript 1.0

function trim(str) {
  str+="";
  c=str.charAt(0);
  while(c==" "||c=="\t"||c=="\n"||c=="\f"||c=="\r") {
    str=str.substring(1,str.length);
    c=str.charAt(0);
  }
  c=str.charAt(str.length-1);
  while(c==" "||c=="\t"||c=="\n"||c=="\f"||c=="\r") {
    str=str.substring(0,str.length-1);
    c=str.charAt(str.length-1);
  }
  return str;
}
function ltrim(str) {
  str+="";
  c=str.charAt(0);
  while(c==" "||c=="\t"||c=="\n"||c=="\f"||c=="\r") {
    str=str.substring(1,str.length);
    c=str.charAt(0);
  }
  return str;
}
function rtrim(str) {
  str+="";
  c=str.charAt(str.length-1);
  while(c==" "||c=="\t"||c=="\n"||c=="\f"||c=="\r") {
    str=str.substring(0,str.length-1);
    c=str.charAt(str.length-1);
  }
  return str;
}

Die Ersetzung weiterer Zeichen ist durch Ergänzung der Schleifenbedingungen möglich:
c==unescape("%00") zum Ersetzen von NUL-Bytes (Bytewert 0); wie bei den originalen PHP-Funktionen
c==unescape("%A0") zum Ersetzen von geschützten Leerzeichen (Bytewert 160);

Für die trim()-Funktion sähe die vollständige Bedingung beispielsweise so aus:
(c==" "||c=="\t"||c=="\n"||c=="\f"||c=="\r"||unescape("%00")||unescape("%A0"))

ab JavaScript 1.2

function trim(str) {
  if(typeof(str)=="string") return str.replace(/^\s+|\s+$/g,"");
  else return str;
}
function ltrim(str) {
  if(typeof(str)=="string") return str.replace(/^\s+/,"");
  else return str;
}
function rtrim(str) {
  if(typeof(str)=="string") return str.replace(/\s+$/,"");
  else return str;
}

Die Ersetzung weiterer Zeichen ist durch Ergänzung der Suchmuster möglich:
\x00 zum Ersetzen von NUL-Bytes (Bytewert 0); wie bei den originalen PHP-Funktionen
\xA0 zum Ersetzen von geschützten Leerzeichen (Bytewert 160); nur MSIE, bei anderen Browsern in \s enthalten

Für die trim()-Funktion sähe der reguläre Ausdruck beispielsweise so aus:
str.replace(/^[\s\x00\xA0]+|[\s\x00\xA0]+$/g,"")

Anders als bei den Funktionen ltrim() und rtrim() muss bei der trim()-Funktion im regulären Ausdruck das Flag g für gobal suchen (= alle Vorkommen finden) gesetzt werden, sonst würde bei Strings mit Whitespaces am Anfang nach dem Entfernen dieser Zeichen gestoppt werden. Um auch die Whitespaces am Ende entfernen zu können, wird der reguläre Ausdruck durch das Flag angewiesen, nicht nur eine sondern alle möglichen Ersetzungen durchzuführen.

 

Beispiel:

Eingabe

<script type="text/javascript">
alert (
  "###" + trim ("   TRIM   ") + "###\n" +
  "###" + ltrim ("   LTRIM   ") + "###\n" +
  "###" + rtrim ("   RTRIM   ") + "###\n" );
</script>

Ausgabe

###TRIM###
###LTRIM   ###
###   RTRIM###

 

Lizenzbestimmungen:

Die auf dieser Seite notierten Scripte ltrim(), rtrim() und trim() sind Public Domain.

 

Zurück zur JavaScript Funktionsübersicht

 

© 2026 Murphy's World     Alle Rechte vorbehalten     Impressum