如何以JavaScript读取文本文件的内容?

问题描述

我想在 javascript 中编写一个读取文本文件函数,并且如果该文本文件中包含任何javascript函数,那么我的函数读取作为javascript。

赞:

const toBeRead = () => true; //This function is in text file

以上功能在文本文件中,我想将其读取为javascript。目前,我正在以 string 的形式阅读此文件,但希望从中获得 true 输出

编辑以获得更好的演示。这是使用 eval()

之后的功能
 function readSingleFile(evt) {
  var f = evt.target.files[0];
  if (f) {
    var r = new FileReader();
    r.onload = function (e) {
      var contents = e.target.result;
      var ct = r.result;
      var words = ct.split("\n");
      let array = [];
      words.map((word) => {
        if (word.substring(0,6) === "const ") {
          if (word.includes("=>")) {
            if (word.includes("=")) {
              alert(word);       //It shows const toBeRead=()=>true;
              alert(eval(word)); // It shows undefined
              array.push(word);
            }
          }
        }
        return array;
      });
      alert(array);
    };
    r.readAsText(f);
  } else {
    alert("Failed to load file");
  }
}

实际上,我正在为编码约定创建规则,例如,如果函数返回布尔值,则应以“ is / has”开头。就像const isFuncTrue =()=> true;在Eslint中没有定义规则!

解决方法

两种方法

  1. eval(jsstr)-不推荐
  2. 脚本:

浏览器中的示例-如果没有DOM,则不会运行

const str = `const toBeRead = () => true; //This function is in text file`
const scr = document.createElement("script")
scr.textContent = str;
document.body.appendChild(scr)
console.log(toBeRead())