美文网首页
用正则替换实现自定义函数

用正则替换实现自定义函数

作者: Dakini_Wind | 来源:发表于2019-04-11 19:47 被阅读0次

    emmm,一个非常偷懒的自定义函数方式,估计没人这样做过。
    话不多说,先贴代码为敬。

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>函数替换规则demo</title>
    </head>
    <body>
    
    <p>定义函数:avg(i,j)为:(i+j)/2</p>
        <p>用户调用函数:avg(a,b)</p>
    <button onclick="myFunction()">替换</button>
    <p id="demo">avg(a,b)</p>
    <script>
    function myFunction() {
        //函数定义
        var str = "avg(i,j)";
        var def = "(i+j)/2";
        
        //正则规则
        var defname = str.match(/[A-z]+/);
        var pams = str.match(/\(([^)]*)\)/);
        var pam = pams[1].match(/[A-z]+/g);
    
        //var rule[defname] = def;
        //这里应该对函数名及对应定义进行存储...但是我不会
        
        //调用函数
        var inputstr = "avg(a,b)";
        
        //正则规则
        var inputpams = inputstr.match(/\(([^)]*)\)/);
        var inputpam = inputpams[1].match(/[A-z]+/g);
        
        var result = def;
        for (var i = 0; i<pam.length; i++)
        {
            var tmp = result;
            var result = tmp.replace(new RegExp(pam[i],'g'),inputpam[i]);
        }
        
        document.getElementById("demo").innerHTML =
            "函数名:" + defname
            + "<br>参数个数:" + pam.length
            + "<br>形参:" + pam
            + "<br>使用替换规则:" + result;
        
    }
    </script>
    
    </body>
    </html>
    

    相关文章

      网友评论

          本文标题:用正则替换实现自定义函数

          本文链接:https://www.haomeiwen.com/subject/ckwxwqtx.html