Frage

Eine einfache Textdatei wird von den Absätzen und einige Leerzeilen aus in ein Array über Ajax geladen. Die Anordnung wird aufgespalten in Elemente durch neue Linien, wie zum Beispiel:

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

Dann wird das Feld durch eine for-Schleife gesetzt, mit verschiedenen Tests für Keywords in verschiedenen Elementen, die die nächsten n-Elemente anzuzeigen, erhalten auf bestimmte Weise verarbeitet. Meistens sind die Elemente ausgegeben, wie

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

Das Problem ist Leerzeilen aus der Textdatei werden auch in Array-Elemente gespeichert. Dann wird ein leeres Listenelement wird ausgegeben und ist merklich falsch.

eine Testbedingung muß nur prüfen, ob das Array-Element leer ist oder ein Newline-Zeichen, ich bin nicht sicher, was gilt. Außerdem ist der Server Buggy und manchmal dauert eine Minute, neue Informationen zu laden, so dass ich manchmal nicht sicher, ob ich meinen letzten Code bin Auffrischen oder nicht.

Einige der Dinge, die ich versucht habe:

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

Ideen?

Edit:. Oh ja, ich habe auch versucht, eine ‚codieren‘ und ‚decode‘ zu tun, bevor sie für ‚\ n‘ Überprüfung nur um es zu bringen

Keine korrekte Lösung

Andere Tipps

Versuchen Sie die Zeichenfolge mit einem RegEx trimmen. Ich denke, das sehr beliebt ist (aus ersten google hit ):

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

WebKit veröffentlicht ein weiterer Satz von Trimmfunktionen nutzen könnten.

Ich würde vorschlagen, nur Array-Element zu trimmen. Zum Beispiel können Sie jQuery verwenden:

if (infoArray[i] = $.trim(infoArray[i])) {
    strMsg += '<li>' + infoArray[i] + '</li>';
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top