Pergunta

Um arquivo de texto simples composta de parágrafos e algumas linhas em branco é carregada em uma matriz via Ajax. A matriz é dividida em elementos de novas linhas, tais como:

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

Em seguida, a matriz é colocado através de um loop, com vários testes para palavras-chave em vários elementos, que indicam os n-elementos próximos são processadas de forma particular. Principalmente os elementos estão de saída, como

    strMsg += '<li>' + infoArray[i] + '</li>';

O problema é linhas em branco a partir do arquivo de texto também são salvos em elementos da matriz. Em seguida, um item da lista em branco fica de saída e é visivelmente errado.

Precisa de uma condição de teste apenas para verificar se o elemento de matriz está vazia ou contém um caractere de nova linha, eu não tenho certeza que se aplica. Além disso, o servidor é buggy e, por vezes, leva um minuto para carregar novas informações assim que eu às vezes não tenho certeza se eu estou atualizando meu código mais recente ou não.

Algumas das coisas que eu tentei:

    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 */ }

Idéias?

Edit:. Oh yeah Eu também tentei fazer uma 'codificação' e 'decodificação' antes de verificar '\ n' apenas para tirá-lo

Nenhuma solução correta

Outras dicas

Tente aparar a corda com uma RegEx. Eu acho que este é popular (retirado primeiro google hit ):

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

WebKit publica outro conjunto de funções de acabamento você poderia usar.

gostaria de sugerir a apenas elemento da matriz guarnição. Por exemplo, você pode usar jQuery:

if (infoArray[i] = $.trim(infoArray[i])) {
    strMsg += '<li>' + infoArray[i] + '</li>';
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top