Javascript 基于不同条件将字符串解析为自定义对象
作为我正在处理的一个小项目的一部分,我需要能够将字符串解析为自定义对象,该对象表示动作、日期和其他一些属性。棘手的部分是,输入字符串可以有多种风格,所有这些风格都需要正确解析 输入字符串可以采用以下格式: 明天早上9点上班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
- 星期一下午三点洗车
- 下周二上午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/ 这是你遇到的一个有趣的问题。请稍后用您的解决方案更新此内容