1

在 .txt 文件中搜索 JavaScript 中的关键字的正确语法是什么?

编辑:我正在一个名为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 中得到一个函数,我就可以将它导入我的程序中。我现在明白了,也许我错了。

谢谢 - 艾略特邦纳维尔

4

3 回答 3

3

这取决于,在现代浏览器中,有一些方法可以访问本地存储的文件(意味着与查看您的网页的用户在同一台​​机器上)。但是,如果文件存储在服务器端,即托管网站的机器上,仅 javascript 是不够的。

如果文件托管在客户端计算机上,请查看此处

但是,如果文件托管在服务器机器上,您可以向服务器发起 AJAX 请求,并让服务器反馈文本文件。(只需将文件打印到 STDOUT 就会将其作为对 HTTP 请求的响应发送)。

http://en.wikipedia.org/wiki/Ajax_%28programming%29 http://www.w3schools.com/Ajax/Default.Asp

收到数据后,您可以使用 xmlhttpobject.responsetext.match("keyword") 来查找它是否存在。

于 2010-07-29T01:06:26.700 回答
1

Javascript 无权访问文件系统。不是没有 ActiveX 插件或 Flash。

听起来您需要一个桌面应用程序或一个 powershell 脚本。

于 2010-07-29T01:05:43.053 回答
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
    }
}

例子

文件.txt:

name=frank&id=12&foo=a

像这样调用函数

process("file.txt", null, /name=([^&]+).id=(\d+)&foo=([^\n]+)/g)
于 2010-07-29T01:17:22.257 回答