¿Cómo comprobar si un elemento de matriz sólo contiene nueva línea?
-
06-09-2019 - |
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>';
}