我想用 JavaScript 从 iCalendar 文件中读取几个参数。
文件输入如下所示:
开始:事件 DTSTART:20121127T190000Z DTEND:20121127T210000Z DTSTAMP:20121130T185808Z UID:q4sbrtajjol1hlpiijpho5jac0@google.com 创建:20121102T191519Z 描述:1。德甲\, 14. Spieltag \n\nhttp://www.fussball-spielplan. 信息最后修改:20121127T211459Z 位置:德国商业银行竞技场\,法兰克福 序列:10 状态:确认摘要:法兰克福法兰克福 - 1. FSV 美因茨 05 (1:3) 运输:透明 结束:事件
参数标签为:
DTSTART:
DTEND:
DTSTAMP:
UID:
CREATED:
DESCRIPTION:
LAST-MODIFIED:
LOCATION:
STATUS:
SUMMARY:
TRANSP:
我想读取这些参数背后的值。值的长度主要是可变的。
使用 aRegExp
非常困难,因为我目前不知道将什么设置为分隔符。
"\n"
不起作用,因为所有文本部分都用空格分隔。但是如果我使用空格分隔符"\s"
,它将在每个单词之后分开,这不是想要的结果,尤其是对于DESCRIPTION:
包含较长文本的参数。
我的源代码目前看起来像这样:
file_reader.onload = function (evt) {
document.getElementById("filedrag").textContent = evt.target.result;
Output(
"<p>File information: <strong>" + file.name +
"</strong> type: <strong>" + file.type +
"</strong> size: <strong>" + file.size +
"</strong> bytes</p>");
var regexp = new RegExp("/DTSTART:(.*?)\s/", "g");
var file_content = evt.target.result;
var match, matches = [];
while ((match = regexp.exec(file_content)) != null) {
matches.push(match.index);
}
alert(matches);
}
任何想法,我怎样才能实现我的想法?