Разбор текста внутри тега <pre> - PullRequest
0 голосов
/ 18 марта 2019

Я пытаюсь создать простое веб-приложение, которое позволяет загружать текстовый файл и отображать его содержимое в теге.Кроме того, когда я нажимаю кнопку «Parse», мне нужно, чтобы текстовое содержимое сохраняло все строки, начинающиеся с «ACK», при сохранении его структуры.

Вот мой код:

// Javascript App.js
document.getElementById("openFile").addEventListener("change", function(){
    var file = this.files[0];
    var fr = new FileReader();
    fr.onload = function(){      
        document.getElementById("fileContents").textContent = this.result;      
    }
    
    fr.readAsText(file);
},false)



//error zone
document.getElementById("parse").addEventListener("click", function(){
    document.getElementById("fileContents").textContent.startsWith("ACK") = this.result;
},false)
<!DOCTYPE html>

  
    <!-- Required meta tags -->
    
    
    Parser

  
  
    
    
    


<!-- preformatted text -->

1 Ответ

1 голос
/ 18 марта 2019

Мои единственные изменения были в прослушивателе событий кнопки parse.Я проанализировал текст fileContents, поэтому при нажатии parse остаются только строки, начинающиеся с ACK.

// Javascript App.js
document.getElementById("openFile").addEventListener("change", function(){
    var file = this.files[0];
    var fr = new FileReader();
    fr.onload = function(){      
        document.getElementById("fileContents").textContent = this.result;      
    }
    
    fr.readAsText(file);
},false)



document.getElementById("parse").addEventListener("click", function(){
    let lines = document.getElementById("fileContents").textContent.split('\n');
    lines = lines.filter((line)=>line.indexOf('ACK')===0);
    let newPre = '';
    lines.map((line)=>{newPre+=line + '\n';});
    document.getElementById("fileContents").textContent = newPre;
},false)
<!DOCTYPE html>

  
    <!-- Required meta tags -->
    
    
    Parser

  
  
    
    
    


<!-- preformatted text -->
...