读取 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>
我的任务是完成一个我似乎无法解决的小编码挑战。它的意思是用 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>