Javascript正则表达式以模式结尾

Javascript regex ends with pattern

本文关键字:结尾 模式 正则表达式 Javascript      更新时间:2023-09-26

我正试图用javascript编写一个正则表达式,以识别json中任意javascript函数的字符串表示,例如

{
  "key": "function() { return 'I am a function'; }"
}

识别开始很容易,但我不知道如何识别结束的双引号,因为函数可能也包含转义的双引号。到目前为止,我最好的尝试是

/"'s*function'(.*')[^"]*/g

如果函数字符串中没有双引号,则效果很好。json键值的末尾将以双引号和随后的逗号或右括号结束。是否有某种方法可以检索所有字符(包括换行符?)直到出现诸如之类的否定模式

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

还是我需要在没有regex的情况下采取完全不同的方法?

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

看起来你想要这样的东西,

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

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

演示