2011-12-20 194 views
0

我正在尝试使用ajax读取文本文件,该工作正常,但我想知道是否有任何方法可以从文件中读取特定的单词或句子阿贾克斯。使用ajax从文本文件中读取特定的文字

谢谢你

+0

您可以使用JavaScript解析文件。或者你的目标是避免发送整个文件?我们需要一个更具体的问题。 – Corbin 2011-12-20 05:51:54

+1

AJAX将获得一切服务器给予它的所有东西 - 始终。这就是HTTP的工作原理。您可以获取所有内容,然后解析数据以获取所需的内容,或者设置它,以便您可以从服务器请求所需的数据。 – 2011-12-20 05:52:58

+0

其实我想从文件中提取一个特殊的单词或短语(匹配模式)并忽略文件的其他内容。 – 2011-12-20 05:57:10

回答

1

好的,你想从每一行中得到最后一句话。假设您检索通过Ajax的文件,并在一个变量都坚持它作为一个字符串:

var fileString = // whatever you did to retrieve it 

然后你就可以使用正则表达式来每行的最后一个字匹配,后字忽略标点符号(但记住话可能包含撇号),并记住,一个行可能只有一个字,也许是这样的:

var re = /(?:^|)([A-Za-z']+)(?:\W*)$/gm, 
    matches = [], 
    current; 

while ((current = re.exec(fileString)) != null) 
    matches.push(current[1]); 

// matches array contains the last word of each line 

或者你可以将字符串分割成线条和分裂的空间每行获得的最后一个字,然后删除杂项标点:

var lines = fileString.split("\n"), 
    matches = []; 

for (var i = 0; i < lines.length; i++) 
    matches.push(lines[i].split(" ").pop().replace(/[^A-Za-z']/g,"")); 

// matches array contains the last word of each line 

两种方法组合成一个单一的jsfiddle演示:http://jsfiddle.net/4qcpH/

既然我已经基本上完成了所有的工作,你来了,我把它留给你查找how the regex works,以及如何.split()作品。

无论使用哪种解决方案,您都可能需要对其进行调整以处理额外的标点符号等等,完全按照您的要求进行。

+0

Thanx很多好友,它的工作。 – 2011-12-21 09:08:03

相关问题