Javascript String slice, substr, substring

Strings umwandeln, zusammenfügen und teilen

Javascript sucht und ersetzt Zeichen und Zeichenketten in Strings und kann Strings in Arrays umwandeln, zusammenfügen und Leerzeichen am Anfang und am Ende entfernen. string.charAt(i) gibt das Zeichen am Index i zurück, concat() fügt Zeichenketten zusammen, substring extrahiert Zeichenkette aus einem String.

Zum besseren Verständnis der String-Methoden hilft es, sich den String als ein besonderes Array vorzustellen:

                                     1                   2
Index-Position   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6
Zeichen          I c h   b i n   e i n e   ©   Z e i c h e n k e t t e

charAt

string.charAt(i) gibt das Zeichen am Index i – gezählt ab 0 – zurück (weil immer ab 0 gezählt wird, wäre das letzte Zeichen an Position string.length - 1).

             // 012345678901234567890123456
letmystring = "Ich bin eine © Zeichenkette";
console.log ("charAt(13) " + mystring.charAt(13));
[LOG] charAt(13) ©

Ist der Index i größer als die Länge der Zeichenkette, ist der Rückgabewert von string.charAt() leer.

charCodeAt

Jedes Zeichen hat eine bestimmte Position in der Unicode-Zeichentabelle. string.charCodeAt(i) gibt den Unicode-Codewert an der Position i – gezählt ab 0 – zurück.

160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175
  ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ­ ® ¯
             // 012345678901234567890123456
let mystring = "Ich bin eine © Zeichenkette";
console.log ("charCodeAt(13) " + mystring.charCodeAt(13));
[LOG] charCodeAt(13) 169

Da haben wir die Unicode-Position von © und können stattdessen auch © schreiben.

concat

string.concat(str) hängt eine oder mehr Zeichenketten an eine andere Zeichenkette.

let vorname = "Egon";
let name = vorname.concat(" Meier");
console.log ("name " + name); // Ausgabe: Egon Meier

fromCharCode

string.fromCharCode(c1,c2,..) erzeugt einen String aus Unicode-Werten ci.

let simpleString = String.fromCharCode(69, 103, 111, 110);

alert(simpleString); // Ausgabe: Egon

String slice

string.slice(v,b) extrahiert einen Teil aus einem String. Im Argument stehen v = von (inklusive) und b = bis (exklusive).

                    0123456789012345678901234567890123456
let simpleString = "Paul Pauline Apostel Paulus Postpaket";
let ausschnitt = simpleString.slice(13, 20);
console.log ("Ausschnitt " +  ausschnitt);
[LOG] Ausschnitt Apostel

simpleString.slice(13, 20) schneidet die Zeichenfolge beginnend bei Position 13 bis inklusive Position 19 aus und weist die Zeichenfolge der Variablen ausschnitt zu.

Das Äquivalent zu string slice für Arrays ist array.slice().

substr

Javascript substr(start,count) gibt ein Fragment ab Position start (inklusive) mit einer Länge von count Zeichen zurück.

                    0123456789012345678901
let simpleString = "http://www.wisotop.de/";
let fragment = simpleString.substr(11, 7);

substring

substring(start,end)schneidet ein Fragment ab Position start (inklusive) bis zur Position end (exklusive) aus einem String.

let simpleString = "http://www.wisotop.de/";
let fragment = simpleString.substring(11, 18);

substr und substring wirken auf den ersten Blick sehr ähnlich. Das zweite Argument macht den Unterschied:

  • Das zweite Argument von substr(start,count) ist die maximale Länge des Rückgabewertes.
  • Das zweite Argument von substring(start,end) ist der Index, an dem das Fragment endet.
0123456789012345678901234567890123456
          |         |         |
ICH BIN EINE ZEICHENKETTE ODER EIN STRING substr(13,20)
ICH BIN EINE ZEICHENKETTE ODER EIN STRING substring(13,20)
[Log] ZEICHENKETTE ODER EI
[Log] ZEICHEN

Strings in der Literatur

Ein alter Nerd-Witz trägt ebenfalls zum Verständnis von Strings bei:

Der Egon fängt in der Straßenmeisterei als Mittelstreifenmaler an. Am ersten Tag schafft er einen perfekten Mittelstreifen auf mehr als der doppelten Länge als alle anderen.
Der Chef ist begeistert und rückt sogar ein Trinkgeld heraus.
Am nächsten Tag ist der Egon immer noch Spitze, wenn auch nicht mehr so gut wie am ersten Tag.

Am dritten Tag schafft er es nicht mal mehr ins Mittelfeld. Der Chef nimmt ihn zur Seite: Was ist los? Du warst saugut an den ersten Tagen und jetzt …?

Der Egon, noch völlig außer Atem und verschwitzt: »Da war der Weg zurück zum Eimer auch nicht so weit«.

XXXX@$%#M BdoFuncB PAn%p xxÖ 77 YYYYYYYYYYY +X0X@$%#MÜ BdoFuncB@X FOOn%p xxT 77 YYYYYYYYYYY §X0X@$%#MÜ} OdoFu B@XVQ FOOn%p xxT 77 YYY §X0 #M]} OdoF @XVQ FOOn%p xxT 77 YYY XX0 #M]} OdoF @XVQ FOOn%pW xxT 77 YYY VAR #M]} OdoF @XVQ FOOn%pW xxT YYY MIN #M]} OdoF @XVQ FOO %pW xxT YYY OON #M]} OdoF @XVQ FOO %pW xxT YYY )9N #M]} OdoF @XVQ FOO pWM xxT YYY A9N oÜp#M]} OdoF0--@XVQ& FOO WMoxxT YYY A9NWoÜp#Mr OdoF0--@XV FOO MoxxT YYY A9NWoÜp#r F0--@XVQ FOO MoxxT YYY PPPPPPPPP AAAAA NAn%p xxÖ XXX YYYYYYYYC PPPPPPPPPP MAAAA NAn%p xXÖ XXX MYYYYYYYYC PPP PPPPP AMAAAAK NAn%p@ xXÖ XXX +§YYYYYYYYC PPP PPPP AMAAAAK NAn%p@ xXÖ XXX +§YY PPP PPPP xAMAAAAKx NAn%p@ xXÖ XXX +§YY PPP NPPPP xAMA A2Kx NAn% o@ xXÖ XXX +§YY PPPPPPPPPP xAMA A2Kxx NAn o@ xXÖ XXX +§YY PPPPPPPPP xzAMA A2Kxx NAn o@m xXÖ XXX +§YY PPP xzAMAÖA2Kxx NAn o@mnxXÖ XXX +§YY PPP axzAM 2Kxxb NAn o@mnxXÖ XXX +§YYI*ß_flM PPP axzA Kxxb NAn ymnxXÖ XXX +§YYI*ß&flM PPP axzA Kxxb NAn mnxXÖ XXX +§YYI*ß&flM STRINGS