【发布时间】:2013-07-01 23:00:27
【问题描述】:
我收到一个错误:未捕获的 TypeError:无法读取 null 的属性“1”来源:X.push(check [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 ] );
}
【问题讨论】:
-
您预计
\n会出现在字符串中的哪个位置?显然你的正则表达式不会匹配完整的字符串。仅供参考,您可以在正则表达式上使用m修饰符将^和$重新定义为匹配行的开头和结尾,而不是字符串的开头和结尾。 -
...如果
check为空,那么我不知道为什么它不会抱怨索引0。少了点什么。 -
我忘记了在我的示例中输入。我在每行输入 textarea 2 个数字
-
我确定这段代码可以在普通的 js 中工作jsfiddle.net/fzYe7/10
标签: javascript android titanium