substrings und eval, wo liegt der Fehler?
Jens
0 holger kuehne0 Jens
<html><head><title>Test</title>
<script language="JavaScript">
function check()
/*
Frage gleich als HTML-Code damit‚s leichter fällt:
es soll folgendes erreicht werden:
das Datum soll auf seine Bestandteile extrahiert werden, also
ein 01, dann ein Punkt, dann der Monat, wieder ein Punkt sowie
das Jahr mit 4 Stellen.
Aber irgendwie funktionieren die Substrings nicht richtig, gibt es
einen Trick????
*/
{
value_Datum="document.LIEF.DAT_1.value";
alert ("value_Datum ist:"+value_Datum);
alert ("eval value_Datum ist:" +eval(value_Datum));
alert ("eval 0,10 ist richtig: " + eval(value_Datum+'.substring(0,10)') );
alert ("eval 2,1 muesste ein Punkt sein: " + eval(value_Datum+'.substring(2,1)') );
alert ("eval 5,1 sollte auch ein Punkt sein: " + eval(value_Datum+'.substring(5,1)') );
alert ("eval 0,2 funktioniert (Tag) : " + eval(value_Datum+'.substring(0,2)') );
alert ("eval 3,2 (Monat) funktioniert nicht, warum? : " + eval(value_Datum+'.substring(3,2)') );
alert ("eval 6,4 (Jahr) funktioniert auch nicht: " + eval(value_Datum+'.substring(6,4)') );
}
</script>
</head><body>
<form action="http://www.irgendwo.de" name="LIEF" onSubmit="return check();">
<input type="Text" name="DAT_1" value="01.01.2001" size="10" maxlength="10"><br>
<input type="submit" name="Absenden">
</form>
</body></html>
Hi
Du hast nur einen kleinen Fehler in deinen substrings. Denn: Die Zweite Zahl in substring gibt nicht etwa die Anzahl der zu extrahierenden Zeichen an, sondern die Position des ersten nicht! mehr zu extrahierenden Zeichens.
So klappt also alles:
...
alert ("value_Datum ist:"+value_Datum);
alert ("eval value_Datum ist:" +eval(value_Datum));
alert ("eval 0,10 ist richtig: " + eval(value_Datum+'.substring(0,10)') );
alert ("eval 2,3 ist jetzt ein Punkt: " + eval(value_Datum+'.substring(2,3)') );
alert ("eval 5,6 ist auch ein Punkt: " + eval(value_Datum+'.substring(5,6)') );
alert ("eval 0,2 funktioniert (Tag) : " + eval(value_Datum+'.substring(0,2)') );
alert ("eval 3,5 (Monat) funktioniert auch: " + eval(value_Datum+'.substring(3,5)') );
alert ("eval 6,11 (Jahr) funktioniert auch : " + eval(value_Datum+'.substring(6,11)') );
...
Tschau Holger
Typisch, die kleinen Dinge im Leben, danke!
Jens
Hi
Du hast nur einen kleinen Fehler in deinen substrings. Denn: Die Zweite Zahl in substring gibt nicht etwa die Anzahl der zu extrahierenden Zeichen an, sondern die Position des ersten nicht! mehr zu extrahierenden Zeichens.
So klappt also alles:...
alert ("value_Datum ist:"+value_Datum);
alert ("eval value_Datum ist:" +eval(value_Datum));
alert ("eval 0,10 ist richtig: " + eval(value_Datum+'.substring(0,10)') );
alert ("eval 2,3 ist jetzt ein Punkt: " + eval(value_Datum+'.substring(2,3)') );
alert ("eval 5,6 ist auch ein Punkt: " + eval(value_Datum+'.substring(5,6)') );
alert ("eval 0,2 funktioniert (Tag) : " + eval(value_Datum+'.substring(0,2)') );
alert ("eval 3,5 (Monat) funktioniert auch: " + eval(value_Datum+'.substring(3,5)') );
alert ("eval 6,11 (Jahr) funktioniert auch : " + eval(value_Datum+'.substring(6,11)') );
...
Tschau Holger