2013-07-01 12 views
6

エラーが発生しました:未知のTypeError:nullのプロパティ '1'を読み取れませんソース:X.push(チェック[1]);Uncaught TypeError:nullのプロパティ '1'を読み取れません。

何が問題ですか?

wspolrzedne.value =テキストはそのようなTextArea内型付け: "2.4 5 1 67 15 67"

だから多分問題はチタンbecouse安全ではありませんで、\ nは改行を含む文字列こと?

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

文字列に表示される '\ n'はどこですか?明らかに正規表現は完全な文字列と一致しません。参考までに、 'm'修飾子を正規表現に使用すると、'^'と' $ 'を文字列の開始と終了の代わりに行の開始と終了を再定義することができます。 –

+0

... 'check'がnullの場合、なぜインデックス' 0'について不平を言うのか分かりません。何かが欠けています。 –

+0

私の例では忘れてしまった。私はtextareaに入力する各行に2つの数字 – lol2x

答えて

2

textArealinebreaksを気にしないので、これは、その単純な空白です。だから解決策は、''で分割し、それぞれの2つを連結することです(またはチェック配列にすべてのペアを直接フィードし、その場で内容を確認する)。

編集:

オクラホマので、問題は、この行である:

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

それが唯一つの値の代わりに2を代入します。

+0

私はそれをチェックしました、textAreaは正しいので改行を送信します。 – lol2x

+0

「\ n」と一致させることができますか? –

+0

私はそれを行うことができますが、他のことはうまくいきません。 :/ – lol2x

関連する問題