使用Javascript搜索函数内部的代码

使用Javascript搜索函数内部的代码,javascript,jquery,regex,Javascript,Jquery,Regex,我有一个html页面,在脚本标记中嵌入了小javascript函数。我正在同一页面中编写另一个javascript/jquery函数,以将此页面作为文本加载到变量中,并在较小的javascript函数中搜索代码 例如: 这是我的文件:abc.html。搜索最好返回警报(元素) $.get() 函数getValue(元素) { 警报(要素); //结束 } var含量,匹配; $('#btn get')。单击(函数(e) { $.get('abc.html',函数(数据) { 内容=数据; }

我有一个html页面,在脚本标记中嵌入了小javascript函数。我正在同一页面中编写另一个javascript/jquery函数,以将此页面作为文本加载到变量中,并在较小的javascript函数中搜索代码

例如: 这是我的文件:abc.html。搜索最好返回警报(元素)


$.get()
函数getValue(元素)
{
警报(要素);
//结束
}
var含量,匹配;
$('#btn get')。单击(函数(e)
{
$.get('abc.html',函数(数据)
{
内容=数据;
});
matched=字符串(内容).match(“getValue(.*)end”);
控制台日志(匹配);
});
这将从搜索查询返回(.*),这不是我想要的。 我在以下SO帖子中尝试了这些建议:

它们返回空值。我也试过用split,pop。这种情况下什么都不管用。 这能做到吗?获得正确输出的最佳方法是什么?
提前谢谢

在这种特殊情况下,此正则表达式满足您的要求:

/{\s*([\s\S]*?)\s*}/
但是,如果小javascript函数包含一个包含自己的花括号的语句,例如
if(){}
语句,它将不会产生您想要的结果

你为什么要这么做?有可能存在一种更好的方法来实现相同的结果,而无需解析函数的HTML文本


多亏了这样,我想出了一个更简单明了的方法

由于html中的每个标记都可以分配一个id,因此我只需在getValue函数中创建一个单独的脚本并为其分配一个id,然后使用$(“#id).html()访问其内容

<!DOCTYPE html>
<html>
  <body>
    <button id="btn-get">$.get()</button>
    <script data-require="jquery" data-semver="2.0.3" src="http://code.jquery.com/jquery-2.0.3.min.js"></script>
    <script id="getvalue" type="text/javascript" charset="utf-8">         
        function getValue(element)
        {
            alert(element);
            //end
        }
   </script>
   <script>
        var content, matched;
        $('#btn-get').click(function(e) 
        {
            var temp = $('#getvalue').html();
            console.log(temp.substring(temp.indexOf('{')+1,temp.lastIndexOf('}')));
      });
    </script>
  </body>
</html>

$.get()
函数getValue(元素)
{
警报(要素);
//结束
}
var含量,匹配;
$('#btn get')。单击(函数(e)
{
var temp=$('#getvalue').html();
log(temp.substring(temp.indexOf('{')+1,temp.lastIndexOf('}'));
});

尝试将其放入回调。能否显示
数据的值
@atmd data是abc.html文件的内容,基本上是@isherwood的全部代码我需要搜索以返回函数getValue which alert(元素)中的代码;在这种情况下。由于无法查看正在搜索的内容,因此很难说为什么搜索不起作用。这很好!谢谢!我还必须在末尾添加g以提取所有匹配项:/{\s*([\s\s]*?)\s*}/g。
<!DOCTYPE html>
<html>
  <body>
    <button id="btn-get">$.get()</button>
    <script data-require="jquery" data-semver="2.0.3" src="http://code.jquery.com/jquery-2.0.3.min.js"></script>
    <script id="getvalue" type="text/javascript" charset="utf-8">         
        function getValue(element)
        {
            alert(element);
            //end
        }
   </script>
   <script>
        var content, matched;
        $('#btn-get').click(function(e) 
        {
            var temp = $('#getvalue').html();
            console.log(temp.substring(temp.indexOf('{')+1,temp.lastIndexOf('}')));
      });
    </script>
  </body>
</html>