In meiner Library JavaScriptClassEnhancements finden Sie neben vielen anderen Methoden die Erweiterung String.format(string, string, string,…);

In diesem Beitrag möchte ich den Anwendern, die diese oder ähnliche Methoden noch nicht aus anderen Programmiersprachen kennen, kurz an einem Beispiel erläutern, was sie damit anfangen kann.

Allgemein beschrieben dient String.format() dazu, in einer Stringvorlage auf einfache Art einzelne Platzhalter durch Strings zu ersetzen.

Als Beispiel dient mir hier eine komplexe Meldungsausgabe bei einer Fehlerbehandlung.

Zwei eingebaute Funktionen ermitteln das aktuelle deutsche Datum und die aktuelle Uhrzeit.

[fusion_builder_container hundred_percent=”yes” overflow=”visible”][fusion_builder_row][fusion_builder_column type=”1_1″ background_position=”left top” background_color=”” border_size=”” border_color=”” border_style=”solid” spacing=”yes” background_image=”” background_repeat=”no-repeat” padding=”” margin_top=”0px” margin_bottom=”0px” class=”” id=”” animation_type=”” animation_speed=”0.3″ animation_direction=”left” hide_on_mobile=”no” center_content=”no” min_height=”none”][code lang=”js”]#include "StringArrayProtoTypes.jsx"
// global Object
var gO = {};
gO.ErrorMessageTemplate = "Fehlermeldung: {0}\nin Zeile: {1}\nDatum: {2}\nUhrzeit: {3}\nStack: {4}";
main()
/*void*/function main()
{
DoSomeThing();
return;
/*void*/function DoSomeThing()
{
try
{
// eine Fehlerunterbrechung erzeugen
var fehler = Fehlermeldung;
}
catch (error)
{
// Erzeugung des kompletten Datums ohne String.format()
/*
alert(
"Fehlermeldung: " + error.message + "\nin Zeile: " + error.line +
"\nDatum: " + getGermanLongDate() + \nUhrzeit: + getGermanTime() +
"\nStack: {4}" $.stack;
);
*/
// Erzeugung des kompletten Datums mit String.format()
alert(gO.ErrorMessageTemplate.format(error.message, error.line,
getGermanLongDate(), getGermanTime(), $.stack));
}
return;
}
/*string*/function getGermanLongDate(/*Date*/ d)
{
// erzeugt eine deutsches Datum in der Form:
// Wochentag, den Monatstag. Monatsnamen Jahr (4-stellig)
// d -> übergebenes Datumsobjekt, wenn nicht vorhanden, aktuelles Datum
if (d==null)
d = new Date();
// Monatsnamen definieren
var months = ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli",
"August", "September", "Oktober", "November", "Dezenber"];
// Tagesnamen definieren
var days = ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"];
// Erzeugung des kompletten Datums ohne String.format()
/*
return days[d.getDay()] + ", den " + d.getDate() + ". " + months[d.getMonth()] + d.getFullYear();
*/
// Erzeugung des kompletten Datums mit String.format()
return "{0}, den {1}. {2} {3}".format(days[d.getDay()], d.getDate(), months[d.getMonth()] , d.getFullYear());
}
/*string*/function getGermanTime(/*Date*/ d)
{
// erzeugt eine Zeitangabe ind der Form
// hh:mm:ss
// .padLeft("0",2) -> Bestandteil von "StringArrayProtoTypes.jsx"
if (d==null)
d = new Date();
// Erzeugung des kompletten Datums ohne String.format()
/*
return "d.getHours().toString().padLeft("0",2) + ":" + d.getMinutes().toString().padLeft("0",2) +
":" + d.getSeconds().toString().padLeft("0",2);
*/
// Erzeugung des kompletten Datums mit String.format()
return "{0}:{1}:{2}".format(d.getHours().toString().padLeft("0",2),
d.getMinutes().toString().padLeft("0",2), d.getSeconds().toString().padLeft("0",2));
}
}[/code][/fusion_builder_column][/fusion_builder_row][/fusion_builder_container]

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Bitte füllen Sie dieses Feld aus.
Bitte füllen Sie dieses Feld aus.
Bitte gib eine gültige E-Mail-Adresse ein.
Sie müssen den Bedingungen zustimmen, um fortzufahren.

WordPress Cookie Plugin von Real Cookie Banner