/**
 * 添加一个新的内容面板。
 * @param {dhc.widget.ContentPanel} panel 添加的面板。
 * @return {dhc.widget.ContentPanel} 返回添加的面板。
 */
dhc.widget.LayoutRegion.prototype.add = function(panel)
{
if (this.stub)
this.stub.add(panel.getStub());
return panel;
};/**
 * 在本区域内显示指定的内容面板。
 * @param {String} id 内容面板的 DOM 元素 ID 。
 */
dhc.widget.LayoutRegion.prototype.showPanel = function(id)
{
if (this.stub)
this.stub.showPanel(id);
};要从一个js文件中提取出注释,如上,现已完成提取,但是如何判断所提取出来的部分注释是哪个方法的注释。
例:
[color=#FF6600]从上面的一段JS中已经通过以行为单位读取文件,再对行内容判断提取出JS中所有的注释,如:
param {dhc.widget.ContentPanel} panel 添加的面板。
return {dhc.widget.ContentPanel} 返回添加的面板。
[color=#993366]并且已可以识别这段注释的含义

[/color]
但是如何判断得到这段注释是add这个方法的注释呢?也就是说如何匹配提取出来的注释与它所注释的内容?
请高手指点。
[/color]

解决方案 »

  1.   

    多读取一行,取到"dhc.widget.LayoutRegion.prototype.showPanel = function(id)"
    然后分析等号前面的内容.因为我不太清楚你的这些方法名有什么特征,比如是不是只要找到了"add"字段,
    就可以知道是add方法.也就是说你的"dhc.widget.LayoutRegion.prototype."这部分都一样,
    只是这个.(点)后面的部分不同,如果是这样就只判断.后面的就可以了,否则的话要根据情况把.前面的
    部分都加上去分析,其实原理就是用js分析字符串,我大概写了个方法,是按第一种情况做的,也就是按.点前面部分都一样分析
    function doCheck(){
        var str = "dhc.widget.LayoutRegion.prototype.add = function(panel)"; // 你取到的方法第一行
    var arrayAll = str.split(" = "); // 从等号将它分成两段,如果你的方法名等号左右没有空格,你就把这里的空格去掉
    var arrayFront = arrayAll[0].split("."); // 将等号前半部分按.劈开
    var methedName = arrayFront[arrayFront.length - 1]; // 取劈开后的最后一部分
    if("add" == methedName){
    alert("add");
    //do something...
    } else if("showPanel" == methedName){
    alert("showPanel");
    //do something...
    } else {
    // .....
    }
    }
    大概就是这样,原理就是分析字符串.