PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : String-Länge in Javascript überprüfen


Blue7
11.09.2005, 13:20:00
Wie kann man mit Javascript eine Javascript Variable auf einen String prüfen, also beinhaltet sie ein zeichen oder zwei?


var s = new String;
s = document.getElementById("left").innerHTML = secsLeft;
var l = s.length;
alert(l);


Bekomme aber immer ein undefined bei der Variablen l, bei s steht aber der Wert drin!

xabbuh
11.09.2005, 13:35:29
Die Länge einer Variablen kannst du über length (http://de.selfhtml.org/javascript/objekte/string.htm#length) ermitteln:

<script type="text/javascript">
<!--
var foo = 'test';
alert(foo.length); // Ausgabe: 4
//-->
</script>

Blue7
11.09.2005, 13:36:47
var s = new String;
s = document.getElementById("left").innerHTML = secsLeft;
var l = s.length;
alert(l);


Bekomme aber immer ein undefined bei der Variablen l, bei s steht aber der Wert drin!

Blue7
11.09.2005, 13:52:45
weis niemand wie ich document.getElementById("left").innerHTML = secsLeft; in einen String umwandlen kann?

xabbuh
11.09.2005, 13:54:34
s = document.getElementById("left").innerHTML = secsLeft;

Was willst du in dieser Zeile denn überhaupt machen?

Blue7
11.09.2005, 13:57:08
Was willst du in dieser Zeile denn überhaupt machen?

Also habe ja mein Countdown-Skript und habe es jetzt so dass ich Sekunden, Minuten, Stunden anzeige, wenn es aber noch 8 Sekunden sind, dann möchte ich 08 ausgeben, denn bisher lieft es dann mit 8, deshalb möchte ich prüfen ob der String 1 oder 2 Zeichen lang ist, um dann mit dem Ergebnis abfragen zu können, ist es ein zeichen hänge eine 0 ran ansosnten lass es.

Diese zeile wo du gepostet hast gibt die Sekunden wieder, also 37 oder halt 8

xabbuh
11.09.2005, 14:02:32
Du musst dir in der Zeile schon überlegen, ob du jetzt der Variablen s den Inhalt dieses HTML-Elementes zuweisen möchtest:

s = document.getElementById('left').innerHTML;


Oder ob du dem HTML-Element den Inhalt der Variablen secsLeft zuweisen möchtest:

document.getElementById('left').innerHTML = secsLeft;

Blue7
11.09.2005, 14:10:48
stimmt doppelte Zuweisung geht ned.

Aber wie bekomme ich den Wert als String.

s = secsLeft;
alert(s.length);

geht ja auch ned, wieder undefined obwohl in s 20, oder 8 drin steht!

Blue7
11.09.2005, 14:39:49
Bin echt Ratlos, andere JavaScript-Stringfunktionen gehen hier auch ned!

xabbuh
11.09.2005, 14:51:59
Aber wie bekomme ich den Wert als String.

s = secsLeft;
alert(s.length);
Was passiert, wenn du stattdessen mal alert(secsLeft) und alert(s) schreibst?

Blue7
11.09.2005, 14:55:13
Was passiert, wenn du stattdessen mal alert(secsLeft) und alert(s) schreibst?
In beiden Fällen gibt es mir die Sekunden aus, also 32 oder 8, ist ja das blöde!
Den Wert bekomme ich aber nicht die Länge!

xabbuh
11.09.2005, 15:16:04
Dann wird es so sein, dass der Datentyp der beiden Variablen number und nicht string ist. Entweder überprüfst du nun, ob s kleiner als 10 ist oder du wandelst die Variablen vorher mit toString() (http://de.selfhtml.org/javascript/objekte/number.htm#to_string) in eine Zeichenkette um.

Blue7
11.09.2005, 15:21:58
größer/kleiner scheint zu funzen, danke!
toString vorher gehabtm hat nicht gefunzt!

xabbuh
11.09.2005, 17:04:19
toString vorher gehabtm hat nicht gefunzt!
Wie hast du toString() denn verwendet?

Blue7
11.09.2005, 17:06:28
auf meinem Rechner

s = secLeft;
var w = s.toString(2);

xabbuh
11.09.2005, 17:32:45
auf meinem Rechner

s = secLeft;
var w = s.toString(2);
Dir ist aber schon klar, was der Wert 2 als Parameter für die Methode toString() bedeutet?

R. Woitaschik
12.09.2005, 15:15:36
Hi Blue7,

Wie kann man mit Javascript eine Javascript Variable auf einen String prüfen, also beinhaltet sie ein zeichen oder zwei?


var s = new String;
s = document.getElementById("left").innerHTML = secsLeft;
var l = s.length;
alert(l);


Bekomme aber immer ein undefined bei der Variablen l, bei s steht aber der Wert drin!

mach so:


var s = new String;
s = document.getElementById("left").innerHTML = ("" + secsLeft);
var l = s.length;
alert(l);


Viele Grüße
Richard