javascript - 如何将文本文件的内容读取为 Javascript?
问题描述
我想在javascript中编写一个读取文本文件的函数,如果它在该文本文件中包含任何 javascript 函数,那么我的函数不会将其作为文本读取,而是将其作为 javascript 读取。
喜欢:
const toBeRead = () => true; //This function is in text file
上面的函数在文本文件中,我想将它作为 javascript 读取。目前我正在将其作为字符串阅读,但想从中获取输出,这是真的。
编辑以获得更好的演示。这是我使用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 中定义规则!
解决方案
两种方法
eval(jsstr)
- 不建议- 脚本:
浏览器中的示例 - 如果没有 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())
推荐阅读
- ios - 呼叫 Btn 给出错误的号码
- html - Angular 反应式表单验证
- javascript - 如何使用扩展获取 Azure Notebook 的用户详细信息?
- zsh - 通过 cmder 或 conemu 在 wsl 上运行 zsh 时,光标键在 vim 中不起作用
- android - 升级到 Android Studio 3.2.1 后出现构建错误
- android - Android WiFi-Direct 组队
- c++ - 跨所有类型的矢量化范围随机数生成
- java - Java 嵌入式 HttpServer:套接字泄漏
- mysql - 选择行号等于其他表中某个值的行
- mysql - 在mysql中合并表