发现自己陷入了两个新手错误之一的境地:
- 编写我应该从库中取出的代码
- 编写超级复杂的代码,使用更好的模式可以大大简化
我要做的很简单,我需要向一些 JavaScript 代码发送指令,这些代码将字段从对象打印到页面。事情开始很好,以下字符串:
message, tags, date
使用轻松指示代码从对象中获取这些元素
field_array = instruction_string.split(',')
obj['message'], obj['tags'], obj['date']
然后我意识到我想修改该日期字段以反映我所在的时区。启用字符串以携带字段的特殊指令增加了正则表达式的一些复杂性,但仍然不是太复杂:
message, tags, date(GMT-5)
使用代码:
var special_instruction = /\(.*\)/ig.exec('date(GMT-5)')[2]
RESULT: special_instruction = 'GMT-5'
当我意识到我还想告诉输出调整日期以便它反映从现在开始的时间增量而不是打印实际日期时,我意识到我已经陷入了困境:
message, tags, date(GMT-5_)(SINCE_NOW)
我写的正则表达式不起作用:
var special_instruction = /\((.*)\)/ig.exec('last_updated(GMT-5)(since_now)')
RESULT: special_instruction = 'GMT-5)(since_now'
尽管可能有一种方法可以修复正则表达式,但这表明我应该使用工具或已建立的模式来执行此操作,而不是在风口浪尖上编写自定义代码并用它来搞砸太久。