te')); return $arr; } /* 遍历用户所有主题 * @param $uid 用户ID * @param int $page 页数 * @param int $pagesize 每页记录条数 * @param bool $desc 排序方式 TRUE降序 FALSE升序 * @param string $key 返回的数组用那一列的值作为 key * @param array $col 查询哪些列 */ function thread_tid_find_by_uid($uid, $page = 1, $pagesize = 1000, $desc = TRUE, $key = 'tid', $col = array()) { if (empty($uid)) return array(); $orderby = TRUE == $desc ? -1 : 1; $arr = thread_tid__find($cond = array('uid' => $uid), array('tid' => $orderby), $page, $pagesize, $key, $col); return $arr; } // 遍历栏目下tid 支持数组 $fid = array(1,2,3) function thread_tid_find_by_fid($fid, $page = 1, $pagesize = 1000, $desc = TRUE) { if (empty($fid)) return array(); $orderby = TRUE == $desc ? -1 : 1; $arr = thread_tid__find($cond = array('fid' => $fid), array('tid' => $orderby), $page, $pagesize, 'tid', array('tid', 'verify_date')); return $arr; } function thread_tid_delete($tid) { if (empty($tid)) return FALSE; $r = thread_tid__delete(array('tid' => $tid)); return $r; } function thread_tid_count() { $n = thread_tid__count(); return $n; } // 统计用户主题数 大数量下严谨使用非主键统计 function thread_uid_count($uid) { $n = thread_tid__count(array('uid' => $uid)); return $n; } // 统计栏目主题数 大数量下严谨使用非主键统计 function thread_fid_count($fid) { $n = thread_tid__count(array('fid' => $fid)); return $n; } ?>Remove JavaScript comments from string with C# - Stack Overflow
最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

Remove JavaScript comments from string with C# - Stack Overflow

programmeradmin3浏览0评论

I am trying to remove javascript ments (// and /**/) from sting with C#. Does anyone have RegEx for it. I am reading list of javascript files then append them to string and trying to clean javascript code and make light to load. Bellow you will find one of the RegEx that works fine with /* */ ments but I need to remove // ments too:

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

I am trying to remove javascript ments (// and /**/) from sting with C#. Does anyone have RegEx for it. I am reading list of javascript files then append them to string and trying to clean javascript code and make light to load. Bellow you will find one of the RegEx that works fine with /* */ ments but I need to remove // ments too:

content = System.Text.RegularExpressions.Regex.Replace(content,
    @"/\*[^/]*/", 
    string.Empty);
Share Improve this question edited Feb 18, 2009 at 23:12 Pure.Krome 87k120 gold badges425 silver badges685 bronze badges asked Jan 17, 2009 at 18:35 Artem GassanArtem Gassan 311 silver badge2 bronze badges 1
  • why is your question all in italics? – Malfist Commented Jan 17, 2009 at 18:41
Add a ment  | 

5 Answers 5

Reset to default 7

You can't use a simple regex to remove ments from JS - at least not reliably. Imagine, for example, trying to process stuff like:

alert('string\' // not-a-ment '); // ment /* not-a-nested-ment
alert('not-a-ment'); // ment */* still-a-ment
alert('not-a-ment'); /* alert('mented-out-code');
// still-a-ment */ alert('not-a-ment');
var re= /\/* not-a-ment */; //* ment
var e4x= <x>// not-a-ment</x>;

You can make your regex work better than it does now by making it end on '*/' instead of just '/', and wrapping an or-clause around to it add the test for // up to the newline. But it'll never be bulletproof, because regex does not have the power to parse languages like JavaScript or [X]HTML.

If you want to minify Javascript files ("make it light to load"), why not try JSMin by Douglas Crockford? There is link to c# implementation at the bottom of the page (http://www.crockford./javascript/jsmin.cs)

An alternative to Regex can be the YUI Compressor for .Net, which can allow you to remove ments and minify JavaScript code.

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

I remend the program stripcmt:

StripCmt is a simple utility written in C to remove ments from C, C++, and Java source files. In the grand tradition of Unix text processing programs, it can function either as a FIFO (First In - First Out) filter or accept arguments on the mandline.

simple and robust, does the job flawlessly.

content = Regex.Replace(content,
                        "/\\*.*?\\*/",
                        String.Empty,
                        RegexOptions.Compiled | RegexOptions.Singleline);
发布评论

评论列表(0)

  1. 暂无评论