Pregunta

A archivo de texto plano formado por los párrafos y algunas líneas en blanco se carga en una matriz a través de Ajax. La matriz se divide en elementos por nuevas líneas, tales como:

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

A continuación, la matriz se pone a través de un bucle, con varias pruebas para las palabras clave en diversos elementos, que indican los siguientes n-elementos se procesan de manera particular. Mayormente los elementos son de salida, como

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

El problema es las líneas en blanco del archivo de texto se guardan también en elementos de la matriz. A continuación, un elemento de la lista en blanco y se pone de salida es notablemente mal.

¿Necesita una condición de prueba sólo para comprobar si el elemento de la matriz está vacío o contiene un carácter de nueva línea, no estoy seguro de que se aplica. Además, el servidor está libre de errores y, a veces se tarda un minuto para cargar nueva información por lo que a veces no estoy seguro si estoy refrescantes mi código más reciente o no.

Algunas de las cosas que he intentado:

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

Las ideas?

Editar:. Oh sí también intenté hacer una 'codificación' y 'decodificar' antes de comprobar '\ n' sólo para llevar a cabo

No hay solución correcta

Otros consejos

Trate de recortar la cadena con una expresión regular. Creo que éste es popular (tomado de primera google golpeó ):

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

otro conjunto de funciones de ajuste que podría utilizar.

Yo sugeriría que acaba de recortar elemento de la matriz. Por ejemplo, se puede usar jQuery:

if (infoArray[i] = $.trim(infoArray[i])) {
    strMsg += '<li>' + infoArray[i] + '</li>';
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top