我正在尝试使用 php preg_replace() 在我的 javascript 中取消注释我的 //comments
并制作一个 preg_replace 应该执行以下操作:
1.当注释在新行开始时,删除整行:
//评论.....
2.当注释在脚本后面时,在 1 TAB//之后删除该注释部分
exampleScript();//(1space) 注释
3.不要匹配http://中的//
这个 pregreplace 完成了上述工作,但是,它目前删除了 3 行代码,其中包含 //
。(请参阅下面的错误匹配标题)它应该跳过。
$buffer = preg_replace('/(?<!http:)\/\/\s*[^\r\n]*/', '', $buffer);
匹配良好
//某事
//something *!&~@#^hjksdhaf
function();//注释
错误匹配
(/\/\.\//)
"//"
"://"
那么,我怎样才能过滤掉这三个错误的匹配项,以及如何更改下面的正则表达式?
(?<!http:)\/\/\s*[^\r\n]*
PS,我不希望将其他人的代码压缩器/框架与他们自己的开销一起使用。现在只是我自己的。
最佳答案
为什么不使用预先存在的 JavaScript 压缩器,比如 YUI Compressor (PHP 绑定(bind) here)?
如果您真的打算自己编写,请查看 source code看看它是如何完成的。
简短版本:正确的方法是使用适当的解析器/分词器方法。
关于php - 如何使用此 preg_replace 取消注释 JavaScript 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5162948/