2013-07-01 20 views
6

Ich erhalte einen Fehler: Uncaught TypeError: Kann die Eigenschaft '1' von null nicht lesen Quelle: X.push (check [1]);Uncaught TypeError: Kann die Eigenschaft '1' von null nicht lesen

Was ist das Problem?

wspolrzedne.value = Text in Textarea so getippt: "2.4 5 1 67 15 67"

Also vielleicht das Problem becouse Titan ist sicher nicht, dass String mit \ n als neuer Linie?

var coordinates = wspolrzedne.value.split("\n"); 
    var X = []; 
    var Y = []; 


    for(var i = 0; i < coordinates.length; ++i) { 
     var check = coordinates[ i ].match(/^([0-9]+.[0-9]*) ([0-9]+.[0-9]*)$/); 

     if(check == false) { 
       var zlewspolrzedne = Ti.UI.createAlertDialog({ 
       title: "Niew?a?ciwe wspó?rz?dne: " + coordinates[ i ], 
       buttonNames: ['Popraw'], 
       cancel: 0 
      }); 
      zlewspolrzedne.show(); 
     } 

     X.push(check[ 0 ]); 
     Y.push(check[ 1 ]);  

    } 
+0

Woher soll das '\ n' in der Zeichenfolge kommen? Es ist klar, dass Ihre Regex nicht mit der vollständigen Zeichenfolge übereinstimmt. Zu guter Letzt können Sie den Modifikator 'm' in der Regex verwenden, um'^'und' $ 'als übereinstimmend mit dem Anfang und dem Ende einer Zeile anstelle von Anfang und Ende der Zeichenfolge zu definieren. –

+0

... und wenn 'check' null ist, dann weiß ich nicht, warum es sich über den Index' 0' nicht beschweren würde. Etwas fehlt. –

+0

Ich vergaß in meinem Beispiel eintritt. Ich tippe in Textarea 2 Zahlen in jeder Zeile – lol2x

Antwort

2

Dies liegt daran, textArea nicht über linebreaks, es ist nur ein einfaches Leerzeichen schert. Also die Lösung ist, durch '' zu teilen und dann jeweils zwei von ihnen zu concat (oder füttern jedes Paar direkt an die Check-Array und überprüfen Sie ihren Inhalt im laufenden Betrieb).

Edit:

Ok, so dass das Problem ist diese Zeile:

var check = coordinates[ i ].match(/^([0-9]+.[0-9]*) ([0-9]+. [0-9]*)$/) 

Er weist nur einen Wert statt zwei.

+0

Ich habe überprüft, dass TextArea Zeilenumbrüche so seine korrekte senden. – lol2x

+0

Sie meinen, Sie können sie mit "\ n" vergleichen? –

+0

genau kann ich es tun, aber die anderen Dinge funktionieren nicht. :/ – lol2x

Verwandte Themen