在JavaScript中搜索.txt文件中关键字的正确语法是什么?
编辑:我正在一个名为Unity3D的程序中使用名为UnityScript的JavaScript子集。它输出.exe程序。这是UnityScript的一个例子:
import System.IO;
function ReadFile () {
var sr = new StreamReader(Application.dataPath + "/" + readFilePath);
var fileContents = sr.ReadToEnd();
sr.Close();
var lines = fileContents.Split("~"[0]);
for (line in lines) {
Debug.Log (line);
}
}
我认为如果我能从JavaScript获得一个函数,我可以将它导入我的程序。我现在看到也许我错了。
谢谢 - Elliot Bonneville
答案 0 :(得分:3)
在现代浏览器中,有一些方法可以访问本地存储的文件(意味着与查看网页的用户在同一台机器上)。但是,如果文件存储在服务器端,这意味着托管网站的机器,仅仅javascript是不够的。
如果文件托管在客户端计算机上,请查看here。
但是,如果文件托管在服务器计算机上,则可以向服务器发起AJAX请求,并让服务器反馈文本文件。 (只需将文件打印到STDOUT即可将其作为对HTTP请求的响应发送)。
http://en.wikipedia.org/wiki/Ajax_%28programming%29 http://www.w3schools.com/Ajax/Default.Asp
收到数据后,您可以使用xmlhttpobject.responsetext.match(“keyword”)查找是否存在。
答案 1 :(得分:1)
Javascript无权访问文件系统。不是没有ActiveX插件或Flash。
听起来您需要桌面应用程序或PowerShell脚本。
答案 2 :(得分:1)
试试这个:
function process(url, send, RegExp)
{
with(new XMLHttpRequest) {
open((send) ? "POST" : "GET", url , false);
setRequestHeader("Content-Type:","text/Plain");
send(send);
if(readyState == 4)
return RegExp != null ? responseText.match(RegExp) : responseText
}
}
例如
file.txt:
name=frank&id=12&foo=a
调用函数
process("file.txt", null, /name=([^&]+).id=(\d+)&foo=([^\n]+)/g)