Javascript正则表达式以模式结束

时间:2014-10-26 17:28:28

标签: javascript regex

我正在尝试在javascript中编写一个正则表达式来识别在json中找到的任意javascript函数的字符串表示,即。

之类的东西
{
  "key": "function() { return 'I am a function'; }"
}

很容易确定起点,但我无法弄清楚如何识别结束双引号,因为该函数可能还包含转义双引号。到目前为止,我最好的尝试是

/"\s*function\(.*\)[^"]*/g
如果函数字符串中没有双引号,

可以很好地工作。 json键值的结尾将以双引号和后续逗号或结束括号结束。有没有办法检索所有字符(包括换行符?),直到一个否定的模式,如

not "/s*, and not "/s*}

...或者我是否需要在没有正则表达式的情况下采取完全不同的方法?

这是我正在使用的当前测试数据: http://regexr.com/39pvi

1 个答案:

答案 0 :(得分:1)

好像你想要这样的东西,

"\s*function\(.*\)(?:\\.|[^\\"])*

它还匹配中间\"转义双引号。

DEMO