当前位置: 移动技术网 > IT编程>开发语言>正则 > [正则表达式]贪婪模式与非贪婪模式

[正则表达式]贪婪模式与非贪婪模式

2017年12月12日  | 移动技术网IT编程  | 我要评论
复制代码 代码如下:

/**    
**   author: site120    
**   function : get script part from html document    
**/    
var loadjs = function(str , delaytime)     
{     
    var delaytime = delaytime || 100;     
    var regexp_scripttag = new regexp("<\\s*script([^>]*)>([\\s\\s]*?)</\\s*script\\s*>" , "gi");     
    var regexp_scriptattrib_src = new regexp("\\s*src?\\s*=\\s*(\"([^\"]+)\"|\'([^\']+)\'|\\s*([^\\s]+)\\s*)" , "gi");     
    var arr_scripttag = null;     
    var arr_scriptattib = null;     
    var scriptdata = "";     
    var jslist = new array();     
    while ((arr_scripttag=regexp_scripttag.exec(str)) != null)     
    {     
        while ((arr_scriptattib=regexp_scriptattrib_src.exec(arr_scripttag[1])) != null)     
        {      
            if (arr_scriptattib[3])     
            {     
                jslist.push(arr_scriptattib[3]);     
            }     
            else if (arr_scriptattib[2])     
            {     
                jslist.push(arr_scriptattib[2]);     
            }     
            else    
            {     
                jslist.push(arr_scriptattib[1]);     
            }     
        }     
        scriptdata += (arr_scripttag[2]);     
    }     
    for (var i=0; i<jslist.length; i++)     
    {     
        var script = document.createelement("script");     
        script.src = jslist[i];     
        document.body.appendchild(script);     
    }     
    if (scriptdata.length > 0)     
    {     
        var fn = "_sitefunction_" + new date().gettime() + "_" + parseint(math.random()*10000) + "_120";     
        scriptdata = " var " + fn + " = function(){ " + scriptdata + " };  "+fn+"();"    
        window.eval(scriptdata);     
    }     
}   
 
这是用js来处理正则表达式,原理与java一样,
功能是读取一段网页源代码,并将它里面所有的script标签,截取并加载运行。
这里面的[\s\s]*?利用非贪婪模式来匹配最近script标签之间的所有代码。包括换行

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网