读取 javascript 中的本地文件并从中输出某些行

read a local file in javascript and output certain lines from it

我的任务是完成一个我似乎无法解决的小编码挑战。它的意思是用 javascript 完成,这是我多年来接触的一种语言......基本上任务是读取本地文件,每行都有句子。有些句子是回文——目标是只输出回文的句子。我尝试使用以下代码在 JSFiddle 中玩耍。但是,我的功能不起作用。

HTML:

<input type="file" name="file" id="file">

Javascript:

window.addEventListener('load', function() {
    document.getElementById("myBtn").addEventListener("click", function() {

      var reader = new FileReader();
      reader.addEventListener('load', function() {
        document.getElementById('file').innerText = this.result;
      });
      reader.readAsText(document.querySelector('input').files[0]);
    });
}, true);
console.log(reader);

我在网上找到了一些检查回文的代码,但它是针对用户输入的句子。我正在努力理解如何利用这个逻辑来应用我输入文件中的行。

function palindrome(str) {
var re = /[\W_]/g;
var lowRegStr = str.toLowerCase().replace(re, '');
var reverseStr = lowRegStr.split('').reverse().join(''); 
return reverseStr === lowRegStr;
}
palindrome("A man, a plan, a canal. Panama");

有什么想法或建议吗?谢谢!

这是针对您获得的样板代码的快速解决方案: 示例文件内容:

A man, a plan, a canal. Panama
something else
another line

window.addEventListener('load', function() {
    document.getElementById("myBtn").addEventListener("click", function() {

      var reader = new FileReader();
      reader.addEventListener('load', function() {
        //document.getElementById('file').innerText = this.result;
        const strings = this.result.split(/\r?\n/);
        const palindromes = strings.filter((line) => {
          return palindrome(line);
        });
        console.log('initial lines:', strings);
        console.log('palindromes only:', palindromes);
      });
      reader.readAsText(document.querySelector('input').files[0]);
    });
}, true);
//console.log(reader);

function palindrome(str) {
  if (str === '') return false;
  var re = /[\W_]/g;
  var lowRegStr = str.toLowerCase().replace(re, '');
  var reverseStr = lowRegStr.split('').reverse().join(''); 
  return reverseStr === lowRegStr;
}
<input type="file" name="file" id="file">
<button id="myBtn">Start</button>