【发布时间】:2011-12-24 01:30:58
【问题描述】:
作为我正在处理的一个小项目的一部分,我需要能够将字符串解析为一个自定义对象,该对象代表一个动作、日期和一些其他属性。棘手的部分是输入字符串可以有多种形式,都需要正确解析。
输入字符串可以是以下格式:
明天早上九点上班
- 周一下午 3 点洗我的车
- 下周二上午 10 点给医生打电话
- 在 3 天内下午 2:30 填写回扣表
- 每天早上 7:00 叫醒我
输出对象看起来像这样:
{
"Action":"Wash my car",
"DateTime":"2011-12-26 3:00PM", // Format is irrelevant at this point
"Recurring":False,
"RecurranceType":""
}
起初我想构建某种树来表示具有不同结果和进一步状态的不同状态(On、In、Every 等)(状态机的候选者,对吗?)。然而,我越想这个,它就越开始看起来像一个语法解析问题。由于可以形成句子的(有限)数量,看起来需要实现某种语法解析算法。
另外,我是在前端做这个的,所以 JavaScript 是这里的首选语言。后端将用 Python 编写,如有必要,可以通过调用 AJAX 方法来使用,但我更愿意将其全部保留在 JavaScript 中。 (说实话,我不认为语言在这里是个大问题)。
那么,我是不是有点过头了?我有很强的 JavaScript 背景,但在语言设计、解析等方面除了学校课程之外什么都没有。有没有更好的方法来解决这个问题?非常感谢任何建议。
【问题讨论】:
标签: javascript json parsing string-parsing