如何扫描文本文件并根据Javascript中的搜索标准从中提取数据
How to scan a text file and extract data from it according to a search criteria in Javascript
我试图创建一个网页,其中包括一个日历(查询日期picker)播放视频存储在vimeo上的特定日期。到目前为止,我设法获得了我点击分配给var(日期)的日期。现在我需要找到相应的vimeo ID到这个日期,以便将其分配给嵌入式vimeo播放器。我认为最好的方法是读取一个文本文件,下面的内容,我已经存储在我的网页文件夹。
……
02-04-2014_Vevey 98230271
02-05-2014_Vevey 98231062
02-06-2014_Vevey 98231771
03-04-2014_Vevey 98232437
03-05-2014_Vevey 98232658
03-06-2014_Vevey 98233405
2015-04-04 2014_vevey 98234165
04 - 05 - 2014 - _vevey 98234754
每行包含一个带有相应vimeo ID的日期信息。
关键是我刚开始使用Javascript,不知道如何发送搜索条件,逐行读取文件,从第一部分提取日期,将其与搜索条件进行比较,然后返回ID。有人愿意花点时间帮我吗?谢谢你。
丹尼尔这里( JSBin ):
// Simulating your datasource.
var data = "'
02-04-2014_Vevey 98230271'n'
02-05-2014_Vevey 98231062'n'
02-06-2014_Vevey 98231771'n'
03-04-2014_Vevey 98232437'n'
03-05-2014_Vevey 98232658'n'
03-06-2014_Vevey 98233405'n'
04-04-2014_Vevey 98234165'n'
04-05-2014_Vevey 98234754";
// Have your data as an array, split by line break
data = data.split(''n');
function search(from, to) {
from = normalize(from);
to = normalize(to);
function normalize(date) {
return '' +
date.getFullYear() +
zeroPad2(date.getMonth()+1) +
zeroPad2(date.getDate());
}
function zeroPad2(number) {
return ('00'+number).slice(-2);
}
// do the actual filtering
return data.filter(function (name) {
var date = name.match(/^('d{2})'-('d{2})-('d{4})/);
date = parseInt(date[3]+date[1]+date[2], 10);
return (date <= to) && (date >= from);
});
}
// Keep in mind that months are zero-based.
var from = new Date(2014, 02, 04); // 03-04-2014
var to = new Date(2014, 03, 06); // 04-06-2014
var searchResult = search(from, to);
console.log(searchResult);
@ Julien;尝试了您提出的解决方案,但似乎明显是错误的(见下文)。还有一件事是"日期- id"数据存储在外部文件中,该文件每天通过bash脚本(自动延时电影生成器)更新。所以我需要把这些数据放到页面.....
<script type="text/javascript">
function vimeo_id_search() {
var message = document.evaluate("//VimeoIds//VimeoID//@date[04-04-2014]",document.documentElement, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);document.getElementById("info").innerHTML = message;
}
</script>
</head>
<body>
<VimeoIds>
<VimeoID date="02-04-2014" id="Vevey 98324123">
<VimeoID date="03-04-2014" id="Vevey 23565723">
<VimeoID date="04-04-2014" id="Vevey 67578673">
<VimeoID date="05-04-2014" id="Vevey 09876542">
</VimeoIDs>
<button onclick="vimeo_id_search()">Try it</button>
<div id="info" style="background-color:#e0b0b0; width:400px"></div>
</body>
</html>
您可以通过对其路径(或$. xml)执行httpXMLrequest来请求文件的完整内容。如果您使用jquery,那么您可以使用一些正则表达式来处理它。
但是,如果您使用xml这样的有组织的格式存储数据,则会容易得多。
对于xml文件,您将能够使用xpath查询它,这使得在文件中找到您要查找的内容非常容易。
这里是确切的代码
<script type="text/javascript">
function vimeo_id_search() {
var message = document.evaluate("//VimeoIds//VimeoID[@date='04-04-2014']",document.documentElement, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
document.getElementById("info").innerHTML += message.snapshotItem(0).getAttribute("id");
}
</script>
</head>
<body>
<VimeoIds>
<VimeoID date="02-04-2014" id="Vevey 98324123">
<VimeoID date="03-04-2014" id="Vevey 23565723">
<VimeoID date="04-04-2014" id="Vevey 67578673">
<VimeoID date="05-04-2014" id="Vevey 09876542">
</VimeoIDs>
<button onclick="vimeo_id_search()">Try it</button>
<div id="info" style="background-color:#e0b0b0; width:400px"></div>
</body>
</html>
- 使用javascript搜索具有用户输入的数组
- Javascript搜索和替换需要包含更多内容
- Javascript搜索函数错误
- 为自定义网站创建JavaScript搜索框,创建显示搜索结果的弹出窗口
- javascript搜索数组,返回找到的关键字
- Javascript:搜索和高亮显示包括HTML标记
- javascript:搜索并用不同的颜色代码替换十六进制颜色代码
- JavaScript搜索算法
- AJAX/JavaScript搜索性能优于Java/Oracle
- 使用JavaScript搜索文本
- javascript搜索功能
- 在 Django 上下文变量上使用 Javascript 搜索算法
- 使用 HTML 文件 API 和 JavaScript 搜索本地目录
- JavaScript 搜索字符串包含
- Javascript 搜索 Excel 文件
- 当没有结果返回 JavaScript 搜索时显示消息
- HTML/Javascript 搜索函数与 AJAX
- Javascript:搜索字符串时数组中的多个表达式
- 使用 JavaScript 搜索字符串,如果结果为 true,则重定向页面
- 使用 JavaScript 搜索元素