2013-07-01 7 views
6

오류가 발생했습니다 : 잡히지 않은 TypeError : null의 속성 '1'을 읽을 수 없습니다. 출처 : X.push ([1] 확인);잡히지 않은 TypeError : null의 속성 '1'을 읽을 수 없습니다.

무엇이 문제입니까?

wspolrzedne.value = 텍스트 그런 textArea의에 입력 : "2.4 5 1 67 15 67"

그래서 아마 문제가 티타늄 렸기 때문에 안전하지 않는 것입니다 \ 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

textArea에 대한 linebreaks, 그 단순한 공백을 걱정하지 않기 때문입니다. 따라서 ''으로 분할 한 다음 각 두 개를 연결하거나 (체크 배열에 모든 쌍을 직접 공급하고 해당 내용을 즉시 확인하십시오) 솔루션입니다.

편집 :

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

대신 두 오직 하나의 값을 할당합니다

좋아, 그래서 문제는이 라인입니다.

+0

나는 textArea가 linebreaks를 정확하다고 보았는지 확인했습니다. – lol2x

+0

"\ n"과 일치시킬 수 있다는 의미입니까? –

+0

정확히 할 수 있지만 다른 것은 작동하지 않습니다. :/ – lol2x

관련 문제