如何解决在javascript中读取本地文件并从中输出某些行
我的任务是完成一个我似乎无法解决的编码挑战。它的意思是用 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>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。