由段落和一些空行组成的纯文本文件通过Ajax加载到一个数组中。数组按新行拆分为元素,例如:
var infoArray = new Array();
infoArray = response.split("\n");
然后,数组通过for循环,对各种元素中的关键字进行各种测试,这表明下一个n元素以特定方式处理。大多数元素都是输出,例如
strMsg += '<li>' + infoArray[i] + '</li>';
问题是文本文件中的空行也保存到数组元素中。然后输出一个空白列表项,显然是错误的。
需要测试条件只是为了检查数组元素是否为空或包含换行符,我不确定哪个适用。此外,服务器有问题,有时需要一分钟才能加载新信息,所以我有时候不确定是否刷新了我最近的代码。
我尝试过的一些事情:
if (!(infoArray[i].substring(0,0) == '')) { /* process output */ } if (!(infoArray[i].substring(0,1) == '\n')) { /* process output */ } if (!(infoArray[i].substring(0,0) == '\n')) { /* process output */ } if (!(infoArray[i].substring(0,1) == /\n/)) { /* process output */ } if (!(infoArray[i].substring(0,1) == /\n/)) { /* process output */ } if (!(infoArray[i].substring(0,1) == /\n|\s*\n/)) { /* process output */ } if (!(infoArray[i].IsEmpty())) { /* process output */ } var tempString = infoArray[i].toString(); if (!(tempString.IsEmpty())) { /* process output */ } if (tempString.length != 0) { /* process output */ }
想法?
编辑:哦,是的,在检查'\ n'之前我还尝试过'编码'和'解码',只是为了把它拿出来。
答案 0 :(得分:1)
尝试使用RegEx修剪字符串。我认为这个很流行(取自first google hit):
if (!(infoArray[i].replace(/^\s+|\s+$/g, '') == ''))
WebKit发布您可以使用的another set of trim functions。
答案 1 :(得分:0)
我建议只修剪数组元素。例如,您可以使用jQuery:
if (infoArray[i] = $.trim(infoArray[i])) {
strMsg += '<li>' + infoArray[i] + '</li>';
}