boris crismancich: vergleichsoperatoren größer, kleiner bei strings

ot:
hallo erstmal, ich schreibe zum ersten mal ins
forum und möchte mich daher kurz vorstellen:
boris crismancich (22), schreibe scripte für
intra / extranet anwendungen und bin in unserer
agentur zuständig für cms (reddot).
sprachen: html, javascript, asp, php, delphiscript etc.

zu meiner frage:
ich habe im SelfHTML beispiel "Formulareingaben überprüfen"
(JavaScript/DOM,Anwendungsbeispiele) folgenden code gefunden:

if(document.Formular.Alter.value.charAt(i) < "0"
   || document.Formular.Alter.value.charAt(i) > "9")

es wäre interessant, bei den vergleichsoperatoren zu erfahren,
welches merkmal der strings verglichen wird. ich vermute
dass es der Latin-1-Codewert sein könnte. leider konnte
ich dazu bisher keine brauchbare antwort in den groups finden.

freue mich über alle infos.

bis denn,
boris crismancich
wettermacher

  1. Moin!

    if(document.Formular.Alter.value.charAt(i) < "0"
       || document.Formular.Alter.value.charAt(i) > "9")

    es wäre interessant, bei den vergleichsoperatoren zu erfahren,
    welches merkmal der strings verglichen wird. ich vermute
    dass es der Latin-1-Codewert sein könnte. leider konnte
    ich dazu bisher keine brauchbare antwort in den groups finden.

    Wie bei allen Programmiersprachen: Es wird der "Bytewert" verglichen, mit dem der String im Speicher repräsentiert wird. Als Bytewert können auch zwei Byte vorliegen, sofern ganz normaler Unicode vorliegt.

    Welche Codierung bei Javascript exakt vorliegt, kann ich dir aber auch nicht sagen. Allerdings: Die ersten 128 Zeichen sind in allen Zeichensätzen identisch, also kannst du wahlweise ASCII, ANSI oder sonst irgendeine Codetabelle annehmen, es wird immer zum gleichen Ergebnis führen.

    - Sven Rautenberg

    1. Hallo,

      Welche Codierung bei Javascript exakt vorliegt, kann ich dir aber
      auch nicht sagen.

      Die Tatsache, dass saemtliche char()-aehnlichen Funktionen mit Unicode
      arbeiten, duerfte darauf hindeuten, dass Unicode verwendet wird. Welche
      Unicode-Implementierung (UTF-8, UTF-16, UTF-32) duerfte dabei vom
      Browser abhaengen, denke ich.

      Gruesse,
       CK

    2. Wie bei allen Programmiersprachen: Es wird der "Bytewert" verglichen, mit dem der String im Speicher repräsentiert wird. Als Bytewert können auch zwei Byte vorliegen, sofern ganz normaler Unicode vorliegt.

      so, das löst doch glatt mein problem.
      über das stichwort unicode bin ich zum
      abschnitt zeichensatz gekommen und da ging
      mir glatt ein ganzer kronleuchter auf.

      danke :ol