根据不同的标准将字符串解析为自定义对象
Parsing a string into a custom object based on different criteria
作为我正在进行的一个小项目的一部分,我需要能够将字符串解析为一个自定义对象,该对象表示操作、日期和其他一些属性。棘手的部分是输入字符串可以有各种形式,都需要正确解析。
输入字符串可以是以下格式:
明天早上9点上班
- 周一下午3点给我洗车
- 下周二上午10点打电话给医生
- 3天内下午2:30填写退税单
- 每天早上7点叫醒我
输出对象看起来像这样:
{
"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背景,但在语言设计、解析等方面,除了学校课程之外什么都没有。有更好的方法来解决这个问题吗?
我不太懂语法解析,但这里有些东西可能会有所帮助。
我的第一个想法是你的句子语法似乎很一致
前3-4个词一般是动词文本名词,后面跟着某种形式的时间。如果所有选项仅限于句子可以采用的形式,则可以硬编码一些解析规则。
我还遇到了几个js语法解析器,可能会让你的地方:
http://jscc.jmksf.com/http://pegjs.majda.cz/http://www.corion.net/perl-dev/Javascript-Grammar.html
这是一个有趣的问题。请稍后将此更新为您的解决方案
相关文章:
- 从HTTPGET返回一个自定义对象列表,以便在Angular 2应用程序中使用
- 使用数组自定义对象
- 使用带有自定义对象作为属性的jQuery.extend时出现意外行为
- 在JavaScript中定义自定义对象和函数(第2部分)
- 在JavaScript中定义自定义对象和函数
- 如何获得一个动态增长的自定义对象的Javascript数组
- Angular Schema Form-自定义对象编辑器
- 使用JavaScript将自定义对象添加到文档中
- 序列化具有方法的自定义对象.序列化后删除的方法-要采取的步骤
- 正在将img/文件上载到Quickbloxx自定义对象API
- 生成自定义对象调用
- 将自定义对象的猫鼬 PUT 实现到复杂架构中时出现问题
- 如何在 Javascript 中制作自定义对象数组
- 使 HTML 元素从自定义对象继承事件
- Javascript错误消息,自定义对象表示
- 在自定义对象上使用 jQuery 等选择器
- 自定义对象内的范围问题
- 自定义对象中的变量范围
- 如何使用Visual Force和Javascript在Salesforce中的自定义对象中获取自定义字段值
- 自定义对象/类型 Javascript