【问题标题】:How can I parse a text file using javascript如何使用 javascript 解析文本文件
【发布时间】:2013-07-15 16:40:00
【问题描述】:

下面的代码是使用 javascript 读取一个文本文件。有用。 但是,我只想阅读部分内容。 例如,文件的内容是:“Hello world!” 我只想显示“你好”。 我尝试了函数 split(),但它只适用于字符串。我不知道怎么插入这里。

 var urls = ["data.txt"];

function loadUrl() {
    var urlToLoad = urls[0];
    alert("load URL ... " + urlToLoad);
    browser.setAttributeNS(xlinkNS, "href", urlToLoad);
}

谢谢!!!

【问题讨论】:

  • 1) 向自己阐明解析的意思。 2)编写代码来做到这一点。
  • 如果您读取一行并将其放入一个字符串中,您可以使用 split..
  • 表示将内容分成几部分。
  • 请澄清您的具体问题或添加其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。
  • @randomizer 你知道如何将文本文件的内容变成字符串吗?

标签: javascript parsing


【解决方案1】:

我用过

jQuery.get('http://localhost/foo.txt', function(data) {
var myvar = data;
});

,并从我的文本文件中获取数据。

或者试试这个

JQuery 提供了一个 $.get 方法,它可以从 URL 中捕获数据。因此,要“读取” html/文本文档,需要通过 URL 访问它。获取 HTML 内容后,您应该能够将该标记包装为 jQuery 包装集并正常搜索它。

未经测试,但它的一般要点......

var HTML_FILE_URL = '/whatever/html/file.html';

$(document).ready(function() {
    $.get(HTML_FILE_URL, function(data) {
        var fileDom = $(data);
        fileDom.find('h2').each(function() {
            alert($(this).text());
        });
    });
});

【讨论】:

    【解决方案2】:

    如果我理解正确,请尝试阅读单独的单词。 创建一个内容为“hello world”的文件并使用示例脚本浏览到它。 输出是“你好”。

    <html>
    <head>
    <input type="file" id="fileinput" />
    <script type="text/javascript">
      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(' ');            
              alert(words[0]);
          }
          r.readAsText(f);
        } else { 
          alert("Failed to load file");
        }
      }
    
      document.getElementById('fileinput').addEventListener('change', readSingleFile, false);
    </script>
    </head>
    <body>
    </body>
    </html>
    

    由于 javascript 对安全性的限制,直接读取必须使用 ajax 请求。 此代码应该执行请求的操作:

    <html>
    <head>
    <input type="file" id="fileinput" />
    <script type="text/javascript">
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.onreadystatechange = function(){
      if(xmlhttp.status==200 && xmlhttp.readyState==4){    
        var words = xmlhttp.responseText.split(' ');
        alert(words[0]);
      }
    }
    xmlhttp.open("GET","FileName.txt",true);
    xmlhttp.send();
    </script>
    </head>
    <body>
    </body>
    </html>
    

    【讨论】:

    • 谢谢。我之前尝试过类似的方式。我可以用这种方式进行解析。但我需要直接显示文本,而不是由用户选择。
    • 直接用javascript读取不是那么容易,你必须执行一个XMLHttpRequest来检索内容。我用一个例子更新了我的答案。
    【解决方案3】:

    用 ajax 在 javascript 中打开文件(不使用任何框架)

    var urls = ["data.txt"];
    xhrDoc= new XMLHttpRequest();   
    xhrDoc.open('GET', urls[0] , async)
    if (xhrDoc.overrideMimeType)
        xhrDoc.overrideMimeType('text/plain; charset=x-user-defined')
    xhrDoc.onreadystatechange =function()
    {
    if (this.readyState == 4)
    {
        if (this.status == 200)
       {
        var data= this.response; //Here is a string of the text data 
       }
    
    }                   
    }
    xhrDoc.send() //sending the request
    

    【讨论】:

      猜你喜欢
      • 2020-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-12
      • 2010-10-25
      • 1970-01-01
      • 1970-01-01
      • 2011-09-24
      相关资源
      最近更新 更多