【问题标题】:How to check if an array element only contains new line?如何检查数组元素是否只包含新行?
【发布时间】:2009-06-01 03:41:13
【问题描述】:

由段落和一些空行组成的纯文本文件通过 Ajax 加载到数组中。数组用换行符分割成元素,如:

var infoArray = new Array();
infoArray = response.split("\n");

然后数组通过一个 for 循环,对各种元素中的关键字进行各种测试,这表明下一个 n 元素以特定方式处理。主要是输出元素,比如

strMsg += '
  • ' + infoArray[i] + '
  • ';

    问题是文本文件中的空白行也保存到数组元素中。然后一个空白列表项得到输出,并且明显错误。

    需要一个测试条件来检查数组元素是否为空或包含换行符,我不确定哪个适用。另外,服务器有问题,有时需要一分钟才能加载新信息,所以我有时不确定我是否正在刷新我最近的代码。

    我尝试过的一些事情:

    if (!(infoArray[i].substring(0,0) == '')) { /* 处理输出 */ } if (!(infoArray[i].substring(0,1) == '\n')) { /* 处理输出 */ } if (!(infoArray[i].substring(0,0) == '\n')) { /* 处理输出 */ } if (!(infoArray[i].substring(0,1) == /\n/)) { /* 进程输出 */ } if (!(infoArray[i].substring(0,1) == /\n/)) { /* 进程输出 */ } if (!(infoArray[i].substring(0,1) == /\n|\s*\n/)) { /* 处理输出 */ } if (!(infoArray[i].IsEmpty())) { /* 处理输出 */ } var tempString = infoArray[i].toString(); if (!(tempString.IsEmpty())) { /* 处理输出 */ } if (tempString.length != 0) { /* 进程输出 */ }

    想法?

    编辑:哦,是的,我还尝试在检查“\n”之前进行“编码”和“解码”,只是为了把它拿出来。

    【问题讨论】:

    • 至少可以简化为一个“如果”。

    标签: javascript arrays string


    【解决方案1】:

    尝试使用正则表达式修剪字符串。我觉得这个很流行(取自first google hit):

    if (!(infoArray[i].replace(/^\s+|\s+$/g, '') == ''))
    

    WebKit 发布您可以使用的another set of trim functions。

    【讨论】:

      【解决方案2】:

      我建议只修剪数组元素。例如,您可以使用 jQuery:

      if (infoArray[i] = $.trim(infoArray[i])) {
          strMsg += '<li>' + infoArray[i] + '</li>';
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-10-13
        • 1970-01-01
        • 2017-11-24
        • 2013-02-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-10-22
        相关资源
        最近更新 更多