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

bingo123450

bingo123450

2016-02-19 13:12

下面图老师小编要跟大家分享[正则表达式]贪婪模式与非贪婪模式,简单的过程中其实暗藏玄机,还是要细心学习,喜欢还请记得收藏哦!

代码如下:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)
/**
** 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标签,截取并加载运行。
这里面的[sS]*?利用非贪婪模式来匹配最近script标签之间的所有代码。包括换行
展开更多 50%)
分享

猜你喜欢

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

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

php正则表达式中的非贪婪模式匹配

Web开发
php正则表达式中的非贪婪模式匹配

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

正则表达式

Web开发
正则表达式

正则表达式口诀 正则表达式学习工具

Web开发
正则表达式口诀 正则表达式学习工具

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

使用正则表达式实现模式图片新闻.ASP

ASP
使用正则表达式实现模式图片新闻.ASP

MySQL 字符串模式匹配 扩展正则表达式模式匹配

编程语言 网络编程
MySQL 字符串模式匹配 扩展正则表达式模式匹配

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

10大理由倡导学习CSS

10大理由倡导学习CSS

电脑读卡器读不出来的解决方法

电脑读卡器读不出来的解决方法
下拉加载更多内容 ↓