Question

Un fichier texte composé des paragraphes et des lignes vides est chargé dans un tableau via Ajax. La matrice est divisée en éléments par de nouvelles lignes, par exemple:

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

Ensuite, le tableau est mis à travers une boucle, avec différents tests pour les mots clés dans divers éléments, qui indiquent les prochains éléments de n-get traités de façon particulière. La plupart du temps les éléments sont sortis, comme

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

Le problème est des lignes vides à partir du fichier texte sont également enregistrés dans les éléments du tableau. Ensuite, un élément de la liste vide obtient la sortie et est sensiblement faux.

Besoin d'une condition de test juste pour vérifier si l'élément de tableau est vide ou contient un saut de ligne, je ne suis pas sûr applicable. De plus le serveur est buggy et prend parfois une minute pour charger de nouvelles informations, donc je suis parfois pas sûr si je suis Rafraîchissant mon code le plus récent ou non.

Certaines des choses que j'ai essayé:

    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ées?

Edit:. Oh ouais j'ai aussi essayé de faire un « encode » et « décoder » avant de vérifier « \ n » juste pour le faire sortir

Pas de solution correcte

Autres conseils

Essayez couper la chaîne avec une expression régulière. Je pense que celui-ci est populaire (extrait de premier Google a frappé ):

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

un autre ensemble de fonctions de finition que vous pouvez utiliser.

Je suggère de couper tout élément de tableau. Par exemple, vous pouvez utiliser jQuery:

if (infoArray[i] = $.trim(infoArray[i])) {
    strMsg += '<li>' + infoArray[i] + '</li>';
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top