JavaScript/Objekte/String

Aus SELFHTML-Wiki
Wechseln zu: Navigation, Suche

Die Eigenschaften und Methoden des Objektes String können Sie auf alle Zeichenketten anwenden. Intern verwenden Browser die UTF-16-Kodierung. Bei Verwendung seltener Zeichen werden deshalb intern zwei Zeichen(einheiten) zur Kodierung verwendet. Dies muss bei String-Funktionen beachtet werden, die etwas mit der Länge oder Position in einem String zu tun haben, da es sich hierbei um eine Angabe in Zeicheneinheiten handelt.

String hat in JavaScript zwei Bedeutungen:

  • einfacher Datentyp für Zeichenketten (wie u.a. auch Zahlen)
  • globales Objekt zur Handhabung von Zeichenketten


Eigenschaften


obsolete Methoden

Methoden


[Bearbeiten] Der einfache Datentyp String

Ein einfacher String wird mit einem so genannten String-Literal erzeugt:

Beispiel
foo = 'text'; bar = "text";

Dabei spielt es keine Rolle, ob doppelte oder einfache Anführungszeichen verwendet werden. Dies wird erst dann wichtig, wenn in der Zeichenkette selbst solche vorkommen. In einem solchen Fall müssen sie mit dem Backslash maskiert (escaped) werden:

Beispiel
tag1 = '<div class="cont">';
tag2 = "<div class=\"cont\">";

Auch mit String('text') wird ein einfacher String erzeugt.

Bei sehr langen Strings möchte man diese manchmal über mehrere Zeilen notiert im Quelltext haben. Dies ist prinzipiell in Javascript möglich, indem der Zeilenumbruch einfach mit \ entwertet wird:

Beispiel
var foo = '<ol>\
<li>First</li>\
<li>Second</li>\
</ol>';

Dieser Ansatz hat den Nachteil, dass er Fehler erlaubt, die man kaum feststellen kann. Im Gegensatz zu obigem Beispiel verursacht folgendes einen Laufzeitfehler:

Beispiel
var foo = '<ol>\ 
<li>First</li>\
<li>Second</li>\
</ol>';

Der Unterschied zwischen den beiden Beispielen ist, dass in Letzterem am Ende der ersten Zeile noch ein Leerzeichen steht. \ maskiert somit das Leerzeichen und nicht den Zeilenumbruch.

Hinweis

Markieren Sie einmal den Code mit der Maus (oder mit der Tastenkombination [Strg]+[A]), um den Unterschied besser zu sehen.

Um einen String auf mehrere Zeilen aufzuteilen, ist es daher meistens empfehlenswerter, dies mittels des String-Verkettungs-Operators + (concatenate) zu tun:

Beispiel
var foo = '<ol>' +
'<li>First</li>' +
'<li>Second</li>' +
'</ol>';
// Oder so
var foo = '<ol>'
+ '<li>First</li>'
+ '<li>Second</li>'
+ '</ol>';

Strings werden intern entsprechend der Spezifikation als UCS-2 oder UTF-16 kodiert. Im Falle von UCS-2 bedeutet dies, dass Unicode-Zeichen außerhalb des BMP (Unicode-Codepoint größer als U+FFFF) nicht bekannt sind. Dies hat praktisch zur Folge dass solche Zeichen als 2 Zeichen behandelt werden. (Siehe auch den Hinweis bei .length)

[Bearbeiten] Strings verknüpfen

Strings können mit dem +-Operator miteinander verknüpft werden.

Beispiel
t1 = "Hallo";
t2 = "Welt";
t3 = t1 + " " + t2; // "Hallo Welt"

[Bearbeiten] Strings vergleichen

Strings können mit den Vergleichsoperatoren verglichen werden.

Beispiel
alert('a' < 'b'); //true
alert('a' > 'b'); //false

(Siehe auch String.localeCompare())

[Bearbeiten] Das String-Objekt

Sobald mit einem String eine Operation durchgeführt wird, wird dieser intern in ein String-Objekt umgewandelt. Ein String-Objekt kann auch von Hand erzeugt werden:

Beispiel
foo = new String('text');

Durch das String-Objekt werden die .length-Eigenschaft und eine Reihe von Methoden zur Bearbeitung von Strings bereitgestellt.

Beispiel ansehen …
function überprüfen() {
  var ort = 'Friedrichshafen';
  var ergebnis = (ort + ' hat ' + ort.length + ' Buchstaben.');
  ausgabe(ergebnis);
}
Im Beispiel wird eine Variable ort definiert, der ein Wert zugewiesen wird, nämlich der Wert Friedrichshafen. Anschließend wird in einem Meldungsfenster ausgegeben: Friedrichshafen hat 15 Buchstaben. Dies geschieht durch einen Aufruf der Objekteigenschaft String.length. Vor dem Punkt kann also eine Variable oder auch irgendeine andere JavaScript-Objekteigenschaft stehen, in der eine Zeichenkette gespeichert ist. Hinter dem Punkt folgt die gewünschte Eigenschaft oder Methode des String-Objekts.


Zeichenketten in JavaScript werden als eine Kette von Einzelzeichen betrachtet.

Jedes Einzelzeichen hat seine Position in der Zeichenkette:

Beispiel
<html>
<head>
  <title>Test</title>

  <script>
    var Name = "Hans";
    alert(Name[0] + Name[1] + Name[2] + Name[3]);
  </script>

</head>
<body>
</body>
</html>

Das Beispiel definiert eine Variable mit den Namen Name. Diese Variable erhält den Wert "Hans". In einem Meldungsfenster wird anschließend zeichenweise dieser Wert der Variablen Name ausgegeben. Das Ergebnis ist das gleiche, wie wenn einfach alert(Name) notiert würde. Aber an dieser Notationsform können Sie erkennen, wie Zeichenketten funktionieren:
Name[0] ist das H,
Name[1] das a,
Name[2] das n und
Name[3] das s.
Es wird also immer bei 0 zu zählen begonnen.

[Bearbeiten] Weblinks

  • ECMAScript 2015 (6th Edition, ECMA-262): String
  • MDN: String
Meine Werkzeuge
Namensräume

Varianten
Aktionen
Übersicht
Schnell‑Index
Mitmachen
Werkzeuge
Spenden
SELFHTML