string.length und zeilenumbruch
Dash
- javascript
Hallo
Ich überprüfe mittels string.length den eingegebenen Text in einen Texteingabefeld (textarea)
Das klappt auch, nur dass der IE Zeilenumbrüche als 2 Zeichen, Netscape/Mozilla als 1 Zeichen interpretiert.
Genaugenommen sind es ja auch 2 (carryage + lineReturn).
Müsste ich beim Netscape den String jetz mühsam nach returns durchkämmen und diese meiner Länge dazuzählen oder gibt es da eine bessere/gebräuchlichere Lösung?
Tx
Dash
Hi,
Das klappt auch, nur dass der IE Zeilenumbrüche als 2 Zeichen, Netscape/Mozilla als 1 Zeichen interpretiert.
nein, bei string.length werden überhaupt keine Zeichen interpretiert. Es wird nur das gezählt, was drin ist. Und als was sich ein Zeilenumbruch bemerkbar macht, ist stark vom system abhängig - es gibt drei verschiedene Varianten, von denen zwei aus einem und eine aus zwei Zeichen bestehen.
Müsste ich beim Netscape den String jetz mühsam nach returns durchkämmen und diese meiner Länge dazuzählen oder gibt es da eine bessere/gebräuchlichere Lösung?
Es hat nichts mit Netscape zu tun, sondern mit dem System insgesamt. Ersetze beispielsweise alle \r\n durch \n, dann hast Du schon mal eine einheitliche Länge für jeden Zeilenumbruch - es bleiben dennoch zwei verschiedene Arten übrig, nämlich \r und \n.
Cheatah
Hallo,
Es hat nichts mit Netscape zu tun, sondern mit dem System insgesamt. Ersetze beispielsweise alle \r\n durch \n, dann hast Du schon mal eine einheitliche Länge für jeden Zeilenumbruch - es bleiben dennoch zwei verschiedene Arten übrig, nämlich \r und \n.
Und wenn er den Text wieder in der Textarea (WinDOS, IE) anzeigt, sind sie alle wieder da... *haha*
Dazu gibts hier noch einen zweiten Thread.
Liebe Grüße aus http://www.braunschweig.de
Tom
Moin Moin !
Genaugenommen sind es ja auch 2 (carryage + lineReturn).
Sagt wer ?
Unix nimmt CR, Mac nimmt LF, DOS (und viele Netzwerk-Protokolle) nimmt CR+LF, und irgendwelche perversen Maschinen nehmen LF+CR. Über IBMs EBCDIC-basierte Maschinen mag ich gar nicht nachdenken.
Müsste ich beim Netscape den String jetz mühsam nach returns durchkämmen und diese meiner Länge dazuzählen oder gibt es da eine bessere/gebräuchlichere Lösung?
Du mußt ohnehin serverseitig die Eingabe überprüfen, schließlich kannst Du nicht garantieren, daß auf dem Client alles so läuft, wie Du es Dir vorstellst. Ich kann z.B. Javascript ausschalten oder ein anderes Formular benutzen, um Deinen Server zu verwirren oder zu töten.
Alexander