我正在尝试在javascript中编写一个正则表达式来识别在json中找到的任意javascript函数的字符串表示,即。
之类的东西{
"key": "function() { return 'I am a function'; }"
}
很容易确定起点,但我无法弄清楚如何识别结束双引号,因为该函数可能还包含转义双引号。到目前为止,我最好的尝试是
/"\s*function\(.*\)[^"]*/g
如果函数字符串中没有双引号,可以很好地工作。 json键值的结尾将以双引号和后续逗号或结束括号结束。有没有办法检索所有字符(包括换行符?),直到一个否定的模式,如
not "/s*, and not "/s*}
...或者我是否需要在没有正则表达式的情况下采取完全不同的方法?
这是我正在使用的当前测试数据: http://regexr.com/39pvi