我知道这个问题的变化已被多次提出,但我发现的其他解决方案都没有对我有效。
我只想尝试使用正则表达式删除某些javascript中可能出现的任何单行注释。
理想情况下,它可以通过某种方式检查两个正斜杠是否是任何实际脚本的一部分。
$("a[href='#top']").click(function() { // This should be removed
$('html, body').animate({
scrollTop:0
}, 'slow');
return false;
});
var SomeURL = 'http://www.google.com'; // This comment should be removed but the URL should not
我有这个:
$fileContents = preg_replace('/\/\/.*/', '', $fileContents);
...但这会破坏我的代码,因为它会删除网址以及单行注释
答案 0 :(得分:0)
正则表达式并不复杂(优雅地)在所有情况下都这样做,但你可以使用一些假设。例如:由于//
只能是a)注释或b)字符串的一部分,因此您应该能够执行以下操作:
\/\/[^;)]*$
这意味着评论后可能没有;
或)
。但这仅适用于您未在评论中使用这些内容的情况。您当然可以使用'
和/或"
之类的任何字符来更好地满足您的需求。