2017-06-21 3 views
0

Ich habe unter Code, die Datei importieren. Ich teile es mit Split ("\ n \ r") Code, aber jetzt hat jede leere Zeile ein Komma. Wie es zu beheben .. Siehe Code unten und aus dem Bild.Javascript Split (" n r") Komma auf leere Zeile hinzufügen

<html> 
    <head> 
     <script src="http://code.jquery.com/jquery-1.10.2.js"></script> 
    </head> 

<body> 


     <textarea id="textareaid" name="textareaid" class = "textdata" value="" rows="10" cols="100" placeholder="Enter Any Text!"></textarea> 
     <br> 
     <input id="filename" class="btnsubmit" type="file" accept="text/plain" onchange="PreviewText();" /> 

<script type="text/javascript"> 

       function PreviewText() { 
       var file = document.getElementById("filename").files[0]; 
        var reader = new FileReader(); 
        reader.onload = function (e) { 
        var array = e.target.result.split("\n\r"); 
        alert (array); 
        document.getElementById("textareaid").value = array; 
        }; 
        reader.readAsText(file); 
     }; 

</script> 

</body> 
</html> 

enter image description here

+0

das ist, weil 'alert (Array)' ist im wesentlichen 'alert (Array.toString()) '. Stattdessen, '.join (...)' es zurück zu einem String mit dem gewünschten Trennzeichen – Bergi

+0

'\ n \ r' - seltsam, ich habe nie gesehen, dass Zeilenende - es ist in der Regel' \ n' oder '\ r \ n 'Ist es nicht? –

Antwort

0

Sie können alle Linien auswählen, die, bevor sie in das Textfeld angezeigt wird nur Komma haben.

Überprüfen Sie das folgende Code-Snippet. Ich habe Array.filter verwendet, um zu überprüfen, ob die Zeile , oder nicht hat.

var array = [ 
 
    "Hello", 
 
    ",", 
 
    "Something", 
 
    ",", 
 
    "Great" 
 
]; 
 

 
array = array.filter(function(line) { 
 
    return line.length > 1 && line !== ","; 
 
}); 
 

 
console.log(array);

0

Warum Sie dies nicht tun, Array.join(" ") ein Array in einen String verwandeln und den Separator entfernen, die in diesem Fall für Arrays sind Kommata

Check it out :

  function PreviewText() { 
       var file = document.getElementById("filename").files[0]; 
       var reader = new FileReader(); 
       reader.onload = function (e) { 

       var array = e.target.result.split("\n\r"); 
       document.getElementById("textareaid").value = array[0] 
       document.getElementById("textareaid1").value = array[1] 
       document.getElementById("textareaid2").value = array[2] 
       }; 
       reader.readAsText(file); // 
    }; 

====================================== ==== // =======================

Wenn Sie dies dynamisch tun möchten, können Sie Folgendes tun:

array.forEach(function(article){ 
    list = document.createElement("ul"); 
    line = document.createElement("li"); 
    span = document.createElement("span"); 

    art = document.createTextNode(article) 

    span.appendChild(art); 
    line.appendChild(span); 
    list.appendChild(line); 

    boxNode.appendChild(list) 
}) 

Beispiel Arbeits (proof of concept) https://jsbin.com/fuyirajoni/edit?html,js,output

es Hoffnung hilft Ihnen :)

+0

Es funktioniert nicht .. Es gibt Fehler .. Uncaught TypeError: e.target.result.join ist keine Funktion –

+0

Was versuchen Sie zu erreichen? –

+0

Ich habe Artikel, die ich in Array konvertieren möchte. und dann wollen Sie verwenden Sie die erste Zeile in einem Textfeld und Ruhe Artikel in den anderen Textbereich –