匹配Javascript代码语句的结尾
我想处理/解析和修改一些Javascript代码,如果可能的话,最好使用正则表达式(欢迎建议)。目的是在JS中的每条语句之后插入一个新的代码段 例如: 原始Javascript: 我要插入的代码段: 因此,新代码如下所示:匹配Javascript代码语句的结尾,javascript,regex,Javascript,Regex,我想处理/解析和修改一些Javascript代码,如果可能的话,最好使用正则表达式(欢迎建议)。目的是在JS中的每条语句之后插入一个新的代码段 例如: 原始Javascript: 我要插入的代码段: 因此,新代码如下所示: 上面的示例非常简单,但真正的JS代码可能更复杂,甚至可以缩小。代码也可能漏掉一些分号一种非常肮脏的方法是在每个左大括号、右大括号和分号之后插入代码片段。像这样: code.replace(/\;/g, '; checkPause(); ').replace(/\{/g, '
上面的示例非常简单,但真正的JS代码可能更复杂,甚至可以缩小。代码也可能漏掉一些分号
代码>一种非常肮脏的方法是在每个左大括号、右大括号和分号之后插入代码片段。像这样:
code.replace(/\;/g, '; checkPause(); ').replace(/\{/g, '{ checkPause(); ').replace(/\}/g, '} checkPause(); ')
正确的方法是使用解析器。我假设这是为了调试目的?术语是“插装”,在@RocketHazmat之前有人问过这个问题:@RocketHazmat:我正在用C#构建一个程序,它利用V8引擎运行一些脚本。我需要脚本来检查它是否应该暂停。@user1816548谢谢链接,我正在检查。这在正则表达式中是不可能的。使用javascript解析器。谢谢你的回答,我需要为我的目的进行更多的测试,但它似乎可以工作。我已经把它缩小到C中的Regex.Replace(code,@“\;”{124;\}\ n“,@“$0 checkPause();”)
。只需注意你的代码不包括例如a=“;”:)
checkPause();
while(true){
checkPause();
Utils.log("hello world");
checkPause();
Utils.sleep(1000);
checkPause();
}
checkPause();
code.replace(/\;/g, '; checkPause(); ').replace(/\{/g, '{ checkPause(); ').replace(/\}/g, '} checkPause(); ')