如何检查数组元素是否只包含新行?

时间:2009-06-01 03:41:13

标签: javascript arrays string

由段落和一些空行组成的纯文本文件通过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'之前我还尝试过'编码'和'解码',只是为了把它拿出来。

2 个答案:

答案 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>';
}