【发布时间】:2017-07-11 09:41:15
【问题描述】:
如果我有一个 JavaScript 表达式,并且我想用一个函数替换特定属性的所有实例。例如:
foo => getFoo()
a.b.foo => getFoo(a.b)
a.foo.b => getFoo(a).b
a.foo.foo => getFoo(getFoo(a))
a.foo.b.foo => getFoo(getFoo(a).b)
a.foo+b.foo||c.foo => getFoo(a)+getFoo(b)||getFoo(c)
a(b.foo) => a(foo(b))
我需要检查表示特定变量的结束或开始的字符,它们是''、'|'、'&'、'('、')'、','、' +'、'-'、'='、''
如果我得到字符串 'foo',然后我需要将所有内容从上面列出的字符之一之后的字符移动到 getFoo() 的内部。
不确定如何实现,或者除了正则表达式之外的其他方法是否更好?
【问题讨论】:
-
为什么要这样做?
-
因为我需要在 getFoo() 函数中输入一些逻辑,然后它只会在某些条件通过时返回 foo,否则返回其他内容。
-
为什么不创建 getFoo 对象并对其进行扩展(例如浅拷贝,或原型设计..)
-
你的意思是使用 Object.defineProperty 在我检查的地方添加另一个“getFoo”属性。我不想为所有对象添加此属性,因为它大多不会出现
标签: javascript regex