Javascript 基于不同条件将字符串解析为自定义对象

Javascript 基于不同条件将字符串解析为自定义对象,javascript,json,parsing,string-parsing,Javascript,Json,Parsing,String Parsing,作为我正在处理的一个小项目的一部分,我需要能够将字符串解析为自定义对象,该对象表示动作、日期和其他一些属性。棘手的部分是,输入字符串可以有多种风格,所有这些风格都需要正确解析 输入字符串可以采用以下格式: 明天早上9点上班 星期一下午三点洗车 下周二上午10点给医生打电话 在3天内下午2:30填写回扣表 每天早上7点叫醒我 输出对象将如下所示: { "Action":"Wash my car", "DateTime":"2011-12-26 3:00PM", // Format

作为我正在处理的一个小项目的一部分,我需要能够将字符串解析为自定义对象,该对象表示动作、日期和其他一些属性。棘手的部分是,输入字符串可以有多种风格,所有这些风格都需要正确解析

输入字符串可以采用以下格式:

明天早上9点上班

  • 星期一下午三点洗车
  • 下周二上午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://pegjs.majda.cz/


这是你遇到的一个有趣的问题。请稍后用您的解决方案更新此内容。

我对语法分析了解不多,但这里的一些内容可能会有所帮助

我的第一个想法是,你的句子语法似乎相当一致

前3-4个词一般是动词文本名词,后面是某种形式的时间。如果总选项仅限于句子的形式,则可以硬编码一些解析规则

我还遇到了一些js语法分析器,它们可能会帮助您实现以下目标:

http://pegjs.majda.cz/

这是你遇到的一个有趣的问题。请稍后用您的解决方案更新此内容