我试图从使用C#的sting中删除javascript注释(//
和/**/
).有人有RegEx吗?我正在阅读javascript文件列表,然后将它们附加到字符串并尝试清理javascript代码并轻松加载.Bellow你会发现其中一个RegEx可以正常/* */
评论,但我也需要删除//
评论:
content = System.Text.RegularExpressions.Regex.Replace(content, @"/\*[^/]*/", string.Empty);
Marko Dumic.. 7
如果你想缩小Javascript文件("轻松加载"),为什么不试试Douglas Crockford的JSMin呢?页面底部有链接到c#实现(http://www.crockford.com/javascript/jsmin.cs)
如果你想缩小Javascript文件("轻松加载"),为什么不试试Douglas Crockford的JSMin呢?页面底部有链接到c#实现(http://www.crockford.com/javascript/jsmin.cs)
您不能使用简单的正则表达式从JS中删除注释 - 至少不可靠.想象一下,例如,试图处理像:
alert('string\' // not-a-comment '); // comment /* not-a-nested-comment alert('not-a-comment'); // comment */* still-a-comment alert('not-a-comment'); /* alert('commented-out-code'); // still-a-comment */ alert('not-a-comment'); var re= /\/* not-a-comment */; //* comment var e4x=// not-a-comment ;
你可以使你的正则表达式比现在更好地工作,使它以'*/'而不仅仅是'/'结束,并且在它周围包装一个or-clause,将//添加到新行的测试.但它永远不会是防弹的,因为正则表达式无法解析JavaScript或[X] HTML等语言.
Regex的替代品可以是.Net的YUI Compressor,它可以让您删除注释并缩小JavaScript代码.
// Note: string javaScript == some javascript data loaded from some file, etc. compressedJavaScript= JavaScriptCompressor.Compress(javaScript);