目的是从一堆js代码获取某个js函数,如js代码是:
function a(){...}function b(){if(xxx){...}for(xxx,xxx,xxx){...}}function c(){...}
我想通过正则获取函数b,所以得到的结果是:function b(){if(xxx){...}for(xxx,xxx,xxx){...}}

解决方案 »

  1.   

    为什么要用正则呢?直接在后台找function B就是了.
      

  2.   

    因为我不是在web上使用,是提取代码用的
      

  3.   

    这个我也想过,不过function里面又有function就麻烦了
      

  4.   

    源:function a(){...}function b(){if(xxx){...}for(xxx,xxx,xxx){...}}function c(){...} 
    正则:
    regex reg=new regex("function b().*?(?=function c())", RegexOptions.Singleline | RegexOptions.IgnoreCase);
      

  5.   

    或者我说清楚一点目的吧,其实是为了分析和获取网页上部分的js代码,这个js代码可能是压缩过的,会去掉所有换行和注释,空格,所以看到的很长一段js都是只有一行,还有就是我是在winapp上运行,不是在asp.net
      

  6.   

    但是这里是不知道function b后面是跟着function c的
      

  7.   


     function[\s]+b\([^\)]*\)(((?'fn'\{)[^\{\}]*)+(?'-fn'\}[^\{\}]*?)+)+(?(fn)(?!))
      

  8.   

    其中function[\s]+b这里的b替换成你的函数名就可。 
      

  9.   

    直接用函数名<html>
    <head>
    <title>直接用函数</title>
    <meta http-equiv="Content-type" content="text/html;charset=gb2312" />
    <style type="text/css">
    <!--
    #ShowResult{
    color:#f00;
    font:12pt arial;
    }
    #title{
    font:14pt arial,verdana,sans-serif;
    }

    -->
    </style>
        <script language="javascript">
    <!--
    function A2C()
    {
    var strResult="";
    var j=0;
    strResult += String.fromCharCode(12288);
    for(var i=65281;i<=65374;i++)
    {
    strResult += String.fromCharCode(i);
    j++;
    if(j==10)
    {
    strResult +="<br />";
    j=0
    }
    }
    //alert(b);
    //document.getElementById("ShowResult").innerHTML ="字符:" +strResult;
    document.getElementById("ShowResult").innerHTML ="结果:" +A2C;
    return A2C;
    }
    -->
        </script>
    </head>
    <body >
    <div >
    <div id="title" >ASCII code to Char,Char to ASCII code.</div>
    <hr />
    <form id="frmRegex"><br />
    <div id="ShowResult"></div><br /><br />
    <div><input type="button" onclick="javascript:A2C();/*alert();*/" value="Click Here!"></div>
    </form>

    </div>
    </body>
    </html> 
      

  10.   

    注意这一句document.getElementById("ShowResult").innerHTML ="结果:" +A2C;
      

  11.   

    如果还要考虑函数里又有functionfunction[\s]+(b|func2|func3)\([^\)]*\)(((?'fn'\{)[^\{\}]*)+(?'-fn'\}[^\{\}]*?)+)+(?(fn)(?!))在上面的Code中(b|func2|func3)这里加上你的子函数名吧,如b函数里有func2,func3两个子函数。