试一下..
我是思路是按照有var声明的..<center>
<textarea rows="30" name="S1" cols="111">function qw45(str)
{
str1='rs2=S1.value\n';
str2='rs2=S1.value\n';
var i=1;
var ii=3;
var reg=/.+/gi;
var r=str.match(reg)
while(r !=null&&i<r.length-1)
{
if(str1.indexOf(r[i])==-1)
{
str1+='rs'+ii+'=rs'+(ii-1)+'.replace(/\\b'+r[i]+'\\b/gi,'+'"['+ii+']");\n'
str2+='rs'+ii+'=rs'+(ii-1)+'.replace(/\\['+ii+'\\]/gi,'+'"'+r[i]+'");\n'
ii++
}
i++;
}
var rst='rs'+(ii)+'=rs'+(ii-1)+'.replace(/\\r\\n/gi,"[1]");\n';rst+='rs'+(ii+1)+'=rs'+(ii)+'.replace(/\\s/gi,"[2]");\n'
var rst2='rs'+(ii)+'=rs'+(ii-1)+'.replace(/\\[1\\]/gi,"\\r\\n");\n';rst2+='rs'+(ii+1)+'=rs'+(ii)+'.replace(/\\[2\\]/gi," ");\n'var jm=str1+rst+"S1.value=rs"+(ii+1)
var jms=str2+rst2+"S1.value=rs"+(ii+1)S2.value=(jm);
S3.value=(jms);
}function cjm4()
{
var tt=S2.value
eval(tt)
}function jmasw()
{
var tt=S3.value
eval(tt)
}</textarea></p>
<script>
function qwe()
{
str1="";
var i=0;
var str=S1.value;
var reg=/var(\s*)([^=;]+)(((\s*)=(\s*)(\S+))|;)?/gi;
while((result = reg.exec(str))!=null)
{
    alert(result[2]+"\n");
}
}
</script>
<p><input type="button" value="按钮" name="B3" onclick="qwe()"></p>
</center>

解决方案 »

  1.   

    如果没有var 呢??用正则获得S1编辑器中js程序的所有变量;
    可惜获得的变量不很准确要求得出全局变量,
    和函数中的变量,
      

  2.   

    再试一下这个.<center>
    <textarea rows="30" name="S1" cols="111">function qw45(str)
    {
    str1='rs2=S1.value\n';
    str2='rs2=S1.value\n';
    var i=1;
    var ii=3;
    var reg=/.+/gi;
    var r=str.match(reg)
    while(r !=null&&i<r.length-1)
    {
    if(str1.indexOf(r[i])==-1)
    {
    str1+='rs'+ii+'=rs'+(ii-1)+'.replace(/\\b'+r[i]+'\\b/gi,'+'"['+ii+']");\n'
    str2+='rs'+ii+'=rs'+(ii-1)+'.replace(/\\['+ii+'\\]/gi,'+'"'+r[i]+'");\n'
    ii++
    }
    i++;
    }
    var rst='rs'+(ii)+'=rs'+(ii-1)+'.replace(/\\r\\n/gi,"[1]");\n';rst+='rs'+(ii+1)+'=rs'+(ii)+'.replace(/\\s/gi,"[2]");\n'
    var rst2='rs'+(ii)+'=rs'+(ii-1)+'.replace(/\\[1\\]/gi,"\\r\\n");\n';rst2+='rs'+(ii+1)+'=rs'+(ii)+'.replace(/\\[2\\]/gi," ");\n'var jm=str1+rst+"S1.value=rs"+(ii+1)
    var jms=str2+rst2+"S1.value=rs"+(ii+1)S2.value=(jm);
    S3.value=(jms);
    }function cjm4()
    {
    var tt=S2.value
    eval(tt)
    }function jmasw()
    {
    var tt=S3.value
    eval(tt)
    }</textarea></p>
    <script>
    function qwe()
    {
    str1="";
    var i=0;
    var str=S1.value;
    var reg=/(\n|\t|\r|\s+)([\w$]+)(\s*)\=(\s*)(\S+)(;)?/gi;
    while((result = reg.exec(str))!=null)
    {
        alert(result[2]+"\n");
    }
    }
    </script>
    <p><input type="button" value="tt" name="B3" onclick="qwe()"></p>
    </center>
      

  3.   

    <center>
    <textarea rows="30" name="S1" cols="111">function qw45(str)
    {
    str1='rs2=S1.value\n';
    str2='rs2=S1.value\n';
    var i=1;
    var ii=3;
    var reg=/.+/gi;
    var r=str.match(reg)
    while(r !=null&&i<r.length-1)
    {
    if(str1.indexOf(r[i])==-1)
    {
    str1+='rs'+ii+'=rs'+(ii-1)+'.replace(/\\b'+r[i]+'\\b/gi,'+'"['+ii+']");\n'
    str2+='rs'+ii+'=rs'+(ii-1)+'.replace(/\\['+ii+'\\]/gi,'+'"'+r[i]+'");\n'
    ii++
    }
    i++;
    }
    var rst='rs'+(ii)+'=rs'+(ii-1)+'.replace(/\\r\\n/gi,"[1]");\n';rst+='rs'+(ii+1)+'=rs'+(ii)+'.replace(/\\s/gi,"[2]");\n'
    var rst2='rs'+(ii)+'=rs'+(ii-1)+'.replace(/\\[1\\]/gi,"\\r\\n");\n';rst2+='rs'+(ii+1)+'=rs'+(ii)+'.replace(/\\[2\\]/gi," ");\n'var jm=str1+rst+"S1.value=rs"+(ii+1)
    var jms=str2+rst2+"S1.value=rs"+(ii+1)S2.value=(jm);
    S3.value=(jms);
    }function cjm4()
    {
    var tt=S2.value
    eval(tt)
    }function jmasw()
    {
    var tt=S3.value
    eval(tt)
    }</textarea></p>
    <script>
    function qwe()
    {
    str1="";
    var i=0;
    var str=S1.value;
    var reg=/(\n|\t|\r|\s+)([\w$]+)(\s*)\=(\s*)(\S+)(;)?/gi;
    while((result = reg.exec(str))!=null)
    {
        alert(result[2]+"\n");
    }
    }
    </script>
    <p><input type="button" value="tt" name="B3" onclick="qwe()"></p>
    </center>
      

  4.   

    var reg=/[\w]+=/gi;
    var r=str.match(reg)