Karl: Stringvergleich

Hi!

ich möchte ein Strinvergleich durchführen. Opera verhält sich so wie ich es erwarte, Mozilla Firefox und der Internet Explorer jedoch nicht

if (id.toUpperCase().substr(0,1) != "L"){  
}

warum gehen die Browser Mozilla Firefox und Internet Explorer in die Bedingung?
Wenn ich vorher "id.toUpperCase().substr(0,1)" mit alert ausgeben lasse, wird "L" ausgegeben.

Es ist sicherlich nur ein Flüchtigkeitsfehler; ich komme jedoch nicht drauf...

Karl

  1. Hi Karl!

    Es ist sicherlich nur ein Flüchtigkeitsfehler; ich komme jedoch nicht drauf...

    Wo und wie ist der Code eingebunden?
    Kann es sein, dass der Code schon ausgeführt wird, während das Dokument noch lädt?

    MfG H☼psel

    --
    "It's amazing I won. I was running against peace, prosperity, and incumbency."
    George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
    Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
    1. Hi!

      »» Es ist sicherlich nur ein Flüchtigkeitsfehler; ich komme jedoch nicht drauf...
      Wo und wie ist der Code eingebunden?
      Kann es sein, dass der Code schon ausgeführt wird, während das Dokument noch lädt?

      dieser Codeabschnitt ist in einer Funktion, die bei ondblclick aufgerufen wird.

      Ich habe den Fehler schon gefunden. Die Abfrage hatte richtig funktioniert. ich dachte, dass die Abfrage ausgeführt wurde, da ein xmlRequest auftrat. der Fehler trat jedoch auf, da ein "xmlRequest.send(null);" außerhalb der Bedingung war. warum Opera keine Fehlermeldung in der Fehlerkonsole ausgegeben hat, ist mir nicht ganz klar.

      Karl

  2. if (id.toUpperCase().substr(0,1) != "L"){

    }

    
    > warum gehen die Browser Mozilla Firefox und Internet Explorer in die Bedingung?  
      
    tun sie das? Be miir nicht  
      
    ~~~javascript
    var id ="lala";  
    if (id.toUpperCase().substr(0,1) != "L"){alert('L');}  
    
    

    Ich würde die Funktionen aber andersrum anwenden, erst den String kürzen und dann in die Großbuchstaben transformieren. Das dürfte etwas schneller sein.

    Struppi.

    1. Hallo,

      Ich würde die Funktionen aber andersrum anwenden, erst den String kürzen und dann in die Großbuchstaben transformieren.

      Ich auch, mit: id[0].toUpperCase()

      Denn einzelne Zeichen in Strings lassen sich bequem wie Array-Elemente über einen Index ansprechen.

      Gruß, Don P

      1. » Ich würde die Funktionen aber andersrum anwenden, erst den String kürzen und dann in die Großbuchstaben transformieren.

        Ich auch, mit: id[0].toUpperCase()

        Denn einzelne Zeichen in Strings lassen sich bequem wie Array-Elemente über einen Index ansprechen.

        Auch das geht, aber nicht in allen Browsern.

        Struppi.

        1. Hallo,

          Auch das geht, aber nicht in allen Browsern.

          Mag sein, es gibt ja hunderte...

          Die Array-Variante ist anscheinend nicht in ECMAscript spezifiziert (jaja, RTFM, hätte ich gleich beherzigen sollen).

          Aber id.charAt(0) sollte ok sein und immer das erste Zeichen liefern, wahrscheinlich schneller als substr(0,1), auf jeden Fall lesbarer.

          Gruß, Don P