Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用C从字符串中删除JavaScript注释#_C#_Javascript - Fatal编程技术网

C# 使用C从字符串中删除JavaScript注释#

C# 使用C从字符串中删除JavaScript注释#,c#,javascript,C#,Javascript,我正试图用C#从sting中删除javascript注释(/和/***/)。 有人用正则表达式吗。我正在阅读javascript文件列表,然后将它们附加到字符串中,并尝试清理javascript代码,使其易于加载。下面,您将发现其中一个正则表达式可以很好地处理/**/注释,但我也需要删除/注释: content = System.Text.RegularExpressions.Regex.Replace(content, @"/\*[^/]*/", string.Empty);

我正试图用C#从sting中删除javascript注释(
/
/***/
)。 有人用正则表达式吗。我正在阅读javascript文件列表,然后将它们附加到字符串中,并尝试清理javascript代码,使其易于加载。下面,您将发现其中一个正则表达式可以很好地处理
/**/
注释,但我也需要删除
/
注释:

content = System.Text.RegularExpressions.Regex.Replace(content,
    @"/\*[^/]*/", 
    string.Empty);

如果你想缩小Javascript文件(“轻装”),为什么不试试呢?页面底部有到c#实现的链接()

可以是Regex的替代方法,它可以让您删除注释并缩小JavaScript代码

// Note: string javaScript == some javascript data loaded from some file, etc.
compressedJavaScript= JavaScriptCompressor.Compress(javaScript); 

您不能使用简单的正则表达式从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= <x>// not-a-comment</x>;
alert('string\'//not-a-comment');//注释/*非嵌套注释
警报(‘非评论’);//评论*/*仍然是评论
警报(‘非评论’);/*警报(“已注释代码”);
//仍然是一条评论*/alert('not-a-comment');
变量re=/\/*非注释*/;/*评论
var e4x=//非注释;
通过使正则表达式结束于“*/”而不是仅仅结束于“/”,并在其周围包装一个or子句,将对//的测试添加到换行符中,可以使正则表达式比现在工作得更好。但它永远不会是防弹的,因为regex没有解析JavaScript或[X]HTML等语言的能力。

我推荐该程序:

StripCmt是一个简单的实用程序 在C中删除C、C++的注释, 和Java源文件。盛大的 Unix文本处理的传统 程序,它可以作为 FIFO(先进先出)滤波器或 接受命令行上的参数


简单而有力,工作做得完美。

为什么你的问题都是斜体字?我可能有点偏颇,但我也建议这样做。真希望我能用这个项目修复我的最后一个小错误。。。和一些专业帮助提示?:)*我会为你担保.NET的压缩机。我已经将它集成到构建过程中——我自动从每个myfile.debug.js生成一个myfile.min.js文件。这太棒了。出于某种原因,这个链接指向的是C实现而不是C实现。这真的很糟糕。为什么它真的很糟糕?如果你打算留下这样的评论,那么海报和其他人应该知道,这样他们就可以做出明智的决定,决定是否应该使用一种解决方案而不是另一种。在大多数情况下,它失败了,破坏了javascript代码,使其无法使用。
content = Regex.Replace(content,
                        "/\\*.*?\\*/",
                        String.Empty,
                        RegexOptions.Compiled | RegexOptions.Singleline);