87,910
社区成员
发帖
与我相关
我的任务
分享
var s ='<script type="text/javascript" src="image/plupload/plupload.js"></script><script type="text/javascript" src="image/plupload/plupload.flash.js"></script><script type="text/javascript" src="image/plupload/plupload.html4.js"></script><script type="text/javascript" src="image/plupload/plupload.html5.js"></script><script type="text/javascript">alert("test");</script>'
p = /<(script)\s+((language=['"]?javascript['"]?)|(type=['"]?text\/javascript['"]?))?\s*\/?>.*(?:<\/\1>)?/gi;
var arr = new Array();
while(arr = p.exec(s))
alert(arr[1]+','+arr[1]+','+arr[2]);
<textarea id="test" style="width:600px;height:500px">
<script type="text/javascript" src="image/plupload/plupload.js"></script><script type="text/javascript"
src="image/plupload/plupload.flash.js"></script><script type="text/javascript" src="image/plupload/plupload.html4.js"></script><script type="text/javascript"
src="image/plupload/plupload.html5.js"></script><script type="text/javascript">alert("test");</script>
上面是你给定的字符串,下面的是论坛源码,删略是因为输入字符太长无法发帖,放一起提取是考虑正则的实际应用兼容性。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
.................................
<title>通过正则匹配出js代码段(非src外部引用的)的问题 - Web 开发 / JavaScript</title>
<link href="http://c.csdn.net/bbs/t/5/t5.css" rel="stylesheet" type="text/css" />
<link href="http://www.csdn.net/images/favicon.ico" rel="SHORTCUT ICON" />
<script type="text/javascript">
var tinfo = {
pdate: "2012-03-09 15:35:03"
,sid: "467d91e3-dd10-480b-a322-71b65e66c736"
,tid: "1f8cdf9c-3337-4f50-9976-49e857ee8214"
,ba: "WebDevelop"
,sa: "JavaScript"
};
</script>
<script type="text/javascript" src="/u/t5/t5.js"></script>
<script type="text/javascript" src="http://counter.csdn.net/a/js/AreaCounter.js"></script>
</head>
<body id="bbscsdn_wrap">
<script src="http://csdnimg.cn/pubnav/js/pub_topnav.js" type="text/javascript"></script>
<div class="nav">
............................
<script type="text/javascript">
setTimeout(function () {
document.getElementById("frm_tt1").src = "/u/t5/include/topic_top.html";
}, 5000);
</script>
<div class="loc">
<p>
<!-- a href="http://wz.csdn.net/rxsg/index.aspx" target="_blank" onclick='LogClickCount(this,117);'><img src="http://c.csdn.net/bbs/t/5/i/rxsg.jpg" alt="热血
....................................
<script type="text/javascript">
new Image().src="https://forum.csdn.net/Common/TopicRead.ashx?postDate=2012-03-09+15%3a35%3a03&topicID=1f8cdf9c-3337-4f50-9976-49e857ee8214&"+(new Date
().getTime().toString(36));
new Image().src="https://forum.csdn.net/PointForum/SetLatestVisitedForum.ashx?sectionid=467d91e3-dd10-480b-a322-71b65e66c736";
</script>
<script src="http://csdnimg.cn/pubfooter/js/publib_footer.js" type="text/javascript"></script>
<img alt="" src="http://counter.csdn.net/pv.aspx?id=185" border="0" width="0" height="0" style="display: none" />
<div><script type="text/javascript" src="http://www.csdn.net/ui/scripts/Csdn/counter.js?v=1.1"></script></div>
<a style="float:right;" href="#" onclick="javascript:this.parentNode.style.display='none';return false;">[关闭]</a>
<script type="text/javascript">
try {
var pdate = "" + parent.eval("tinfo.pdate");
if (pdate) {
pdate = new Date(pdate.replace(/-/g, "/"));
var today = new Date();
showad = (today.getTime() - pdate.getTime()) / 1000 / 60 / 60 / 24 > 30;
}
} catch (ex) { };
showad=true;
try {
var ad_left = "";
if (showad && screen.availWidth >= 1280) {
ad_left += '<' + 'script type=\"text/javascript\">';
ad_left += 'google_ad_client = "pub-1076724771190722";';
ad_left += 'google_ad_slot =\"5633584852\";';
ad_left += 'google_ad_width = 120;';
ad_left += 'google_ad_height = 600;';
ad_left += '</' + 'script>';
ad_left += '<' + 'script type=\"text/javascript\"';
ad_left += 'src=\"http://pagead2.googlesyndication.com/pagead/show_ads.js\">';
ad_left += '</' + 'script>';
}
document.write(ad_left);
document.getElementById("ad_left").style.display = "";
} catch (e) { }
</script>
</div>
<div id="ad_right" style="position:absolute;width:120px;top:184px;right:10px;display:none;">
<a style="float:left;" href="#" onclick="javascript:this.parentNode.style.display='none';return false;">[关闭]</a>
<script type="text/javascript">
try {
var ad_right = "";
if (showad && screen.availWidth >= 1280) {
ad_right += '<' + 'script type=\"text/javascript\">';
ad_right += 'google_ad_client = "pub-1076724771190722";';
ad_right += 'google_ad_slot =\"9259923286\";';
ad_right += 'google_ad_width = 120;';
ad_right += 'google_ad_height = 600;';
ad_right += '</' + 'script>';
ad_right += '<' + 'script type=\"text/javascript\"';
ad_right += 'src=\"http://pagead2.googlesyndication.com/pagead/show_ads.js\">';
ad_right += '</' + 'script>';
}
document.write(ad_right);
document.getElementById("ad_right").style.display = "";
} catch (e) { }
</script>
</div>
<!--云计算的广告-->
<script type="text/javascript" src="http://ag.csdn.net/js/jquery-1.4.1.min.js"></script>
<script type="text/javascript">
jQuery.noConflict();
</script>
<!--ibm ad-->
<script type="text/javascript" src="http://event.blog.csdn.net/cloudad/ibm/ad.js?v=1"></script>
<!--取消置顶-->
<script type="text/javascript">
function setUnTopLink() {
var _url = "https://forum.csdn.net/PointForum/Manage/Tops/deleteTop.aspx";
_url += "?topicUrl=" + encodeURIComponent(location.href);
_url += "§ionID=" + encodeURIComponent(tinfo.sid);
var _click = "try{showWindow({url:'" + _url + "',width:600,height:265,title:'取消置顶'});}catch(ex){}return false;";
var li = jQuery('<li><a href="#" onclick="' + _click + '">取消置顶</a></li>');
li.insertAfter(jQuery('#a_head_recreate').parent().next());
}
setTimeout("setUnTopLink()",3000);
</script>
</body>
</textarea>
<script>
var str =document.getElementById("test").value;
str = str.match(/<(script)(?!.*src)[^>]*>(?!<\/?\1>)[\S\s]*?<\/\1>/gi, "").join("\n");
alert(str)
</script>
var s ="<scr"+"ipt type=\"text/javascript\" src=\"image/plupload/plupload.js\"></scr"+"ipt><scr"+"ipt type=\"text/javascript\" src=\"image/plupload/plupload.flash.js\"></scr"+"ipt><scr"+"ipt type=\"text/javascript\" src=\"image/plupload/plupload.html4.js\"></scr"+"ipt><sc"+"ript type=\"text/javascript\" src=\"image/plupload/plupload.html5.js\"></scr"+"ipt><scr"+"ipt type=\"text/javascript\">alert(\"test\");</scr"+"ipt>";
p = /<script[^<]*?>([^<].+?)<\/script>/gi;
var arr = new Array();
while(arr = p.exec(s))
document.write( arr[1] + "<br>");
var str ='<script type="text/javascript" src="image/plupload/plupload.js"><\/script><script type="text/javascript" src="image/plupload/plupload.flash.js"><\/script><script type="text/javascript" src="image/plupload/plupload.html4.js"><\/script><script type="text/javascript" src="image/plupload/plupload.html5.js"><\/script><script type="text/javascript">alert("test");<\/script>',
reg = /<script\b[^<>]*>[^<>]+<\/script>/g;
alert(str.match(reg));